Browse Source

no message

aXin-0810 9 months ago
parent
commit
bb2f4a340d

+ 81 - 0
src/api/departmentManagement.js

@@ -0,0 +1,81 @@
+import request, { postBlob, getBlob, handleImport } from '@/utils/request'
+
+export function adminDeptList(data) {
+  return request({
+    url: `/admin/dept/list?moduleId=${data.moduleId}`,
+    method: 'post',
+    data
+  })
+}
+
+export function adminDeptListExport(data, name) {
+  return postBlob({
+    url: '/admin/dept/list/export',
+    data,
+    name
+  })
+}
+
+export function adminDeptTree(params) {
+  return request({
+    url: '/admin/dept/tree',
+    method: 'get',
+    params
+  })
+}
+
+export function adminDeptAdd(data) {
+  return request({
+    url: '/admin/dept/add',
+    method: 'post',
+    data
+  })
+}
+
+export function adminDeptUpdate(data) {
+  return request({
+    url: '/admin/dept/update',
+    method: 'post',
+    data
+  })
+}
+
+export function adminDeptDel(params) {
+  return request({
+    url: '/admin/dept/del',
+    method: 'post',
+    params
+  })
+}
+
+export function adminDeptAddWebsit(data) {
+  return request({
+    url: '/admin/dept/addWebsit',
+    method: 'post',
+    data
+  })
+}
+
+export function adminDeptUpdateWebsit(data) {
+  return request({
+    url: '/admin/dept/updateWebsit',
+    method: 'post',
+    data
+  })
+}
+
+export function adminDeptDelWebsit(params) {
+  return request({
+    url: '/admin/dept/delWebsit',
+    method: 'post',
+    params
+  })
+}
+
+export function adminDeptTreeWebsit(params) {
+  return request({
+    url: '/admin/dept/treeWebsit',
+    method: 'get',
+    params
+  })
+}

+ 1 - 1
src/api/paymentMerchantManagement.js

@@ -26,7 +26,7 @@ export function adminCompanyPayConfigSave(data) {
 
 export function adminCompanyPayConfigDetail(params) {
   return request({
-    url: '/admin/company/pay/config/save',
+    url: '/admin/company/pay/config/detail',
     method: 'post',
     params
   })

+ 60 - 22
src/views/setting/dataDictionary/addDataDictionary.vue

@@ -1,31 +1,64 @@
 <template>
-  <el-dialog title="数据字典" :visible.sync="dialogVisible" width="460px" :before-close="handleClose"
-    :destroy-on-close="true">
-    <el-form v-if="visible" size="mini" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px"
-      class="demo-ruleForm">
+  <el-dialog
+    title="数据字典"
+    :visible.sync="dialogVisible"
+    width="460px"
+    :before-close="handleClose"
+    :destroy-on-close="true"
+  >
+    <el-form
+      v-if="visible"
+      size="mini"
+      :model="ruleForm"
+      :rules="rules"
+      ref="ruleForm"
+      label-width="100px"
+      class="demo-ruleForm"
+    >
       <el-form-item label="父字典类型" prop="parentDictType">
-        <el-select v-model="ruleForm.parentDictType" placeholder="请选择" filterable style="width: 100%"
-          @change="updatedata">
-          <el-option v-for="(item, index) in typeList" :key="index" :label="item.remark"
-            :value="item.dictType"></el-option>
+        <el-select
+          v-model="ruleForm.parentDictType"
+          placeholder="请选择"
+          filterable
+          style="width: 100%"
+          @change="updatedata"
+        >
+          <el-option
+            v-for="(item, index) in typeList"
+            :key="index"
+            :label="item.remark"
+            :value="item.dictType"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="父字典值" prop="parentDictCode">
         <el-select v-model="ruleForm.parentDictCode" filterable placeholder="请选择" style="width: 100%">
-          <el-option v-for="(item, index) in parentDict" :key="index" :label="item.dictValue"
-            :value="item.dictCode"></el-option>
+          <el-option
+            v-for="(item, index) in parentDict"
+            :key="index"
+            :label="item.dictValue"
+            :value="item.dictCode"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="父字典编码" prop="parentDictCode">
-        <el-input :disabled="true" :value="ruleForm.parentDictCode
-          ? (parentDict.find(item => item.dictCode === ruleForm.parentDictCode) || {}).dictCode
-          : ''
-          "></el-input>
+        <el-input
+          :disabled="true"
+          :value="
+            ruleForm.parentDictCode
+              ? (parentDict.find(item => item.dictCode === ruleForm.parentDictCode) || {}).dictCode
+              : ''
+          "
+        ></el-input>
       </el-form-item>
       <el-form-item label="字典类型" prop="dictType">
         <el-select v-model="ruleForm.dictType" placeholder="请选择" filterable style="width: 100%">
-          <el-option v-for="(item, index) in typeList" :key="index" :label="item.remark"
-            :value="item.dictType"></el-option>
+          <el-option
+            v-for="(item, index) in typeList"
+            :key="index"
+            :label="item.remark"
+            :value="item.dictType"
+          ></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="字典值" prop="dictValue">
@@ -41,8 +74,13 @@
         <el-input v-model="ruleForm.remark"></el-input>
       </el-form-item>
       <el-form-item label="状态" prop="status">
-        <el-switch v-model="ruleForm.status" active-value="ON" inactive-value="OFF" active-color="#13ce66"
-          inactive-color="#ff4949">
+        <el-switch
+          v-model="ruleForm.status"
+          active-value="ON"
+          inactive-value="OFF"
+          active-color="#13ce66"
+          inactive-color="#ff4949"
+        >
         </el-switch>
       </el-form-item>
       <el-form-item>
@@ -143,10 +181,10 @@ export default {
       this.$refs[formName].validate(valid => {
         if (valid) {
           ;[addDataDictionary, updateDataDictionary]
-          [this.item ? 1 : 0]({
-            ...this.ruleForm,
-            sysDictId: this.item ? this.item.sysDictId : undefined
-          })
+            [this.item ? 1 : 0]({
+              ...this.ruleForm,
+              sysDictId: this.item ? this.item.sysDictId : undefined
+            })
             .then(res => {
               this.$emit('success')
               this.$message({

+ 384 - 340
src/views/setting/dataDictionary/index.vue

@@ -1,42 +1,66 @@
 <template>
-	<zj-tab-page ref="tabPage" :defaultActives="[{ key: 'list', label: $route.meta.title+'-列表', essential: true }]">
-		<template slot-scope="{activeKey, data}">
-			<div :style="{
-				width: '100%',
-				height: activeKey == 'list' ? '100%' : '0px',
-				overflow: 'hidden'
-			}">
-				<zj-page-container direction="row">
-					<div class="catalogue">
-						<div class="title">类型名称</div>
-						<zj-page-container>
-							<zj-page-fill>
-								<el-tree :data="typeList" :props="defaultProps" default-expand-all :highlight-current="true"
-									:expand-on-click-node="false" @node-click="handleNodeClick" current-node-key="ASSIST_UNIT"
-									node-key="dictType" ref="listTree">
-								</el-tree>
-							</zj-page-fill>
-						</zj-page-container>
-					</div>
-					<template-page ref="pageRef" :getList="getList" :columnParsing="columnParsing"
-						:optionsEvensGroup="optionsEvensGroup" :tableAttributes="tableAttributes" :tableEvents="tableEvents"
-						:operationColumnWidth="160" :operation="operation()" :exportList="exportList">
-					</template-page>
-				</zj-page-container>
-			</div>
-			<div v-if="~['add', 'detail'].indexOf(activeKey)" style="box-sizing: border-box;padding: 16px;">
-				<zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
-					<zj-form-module :title="data.label" label-width="100px" :showPackUp="false" :form-data="formData"
-						:form-items="formItems" :disabled="formDialogType == 2">
-					</zj-form-module>
-				</zj-form-container>
-				<div slot="footer" class="dialog-footer">
-					<el-button size="mini" @click="data.removeTab()">取 消</el-button>
-					<el-button size="mini" type="primary" @click="formConfirm(data.removeTab)">确定</el-button>
-				</div>
-			</div>
-		</template>
-	</zj-tab-page>
+  <zj-tab-page ref="tabPage" :defaultActives="[{ key: 'list', label: $route.meta.title + '-列表', essential: true }]">
+    <template slot-scope="{ activeKey, data }">
+      <div
+        :style="{
+          width: '100%',
+          height: activeKey == 'list' ? '100%' : '0px',
+          overflow: 'hidden'
+        }"
+      >
+        <zj-page-container direction="row">
+          <div class="catalogue">
+            <div class="title">类型名称</div>
+            <zj-page-container>
+              <zj-page-fill>
+                <el-tree
+                  :data="typeList"
+                  :props="defaultProps"
+                  default-expand-all
+                  :highlight-current="true"
+                  :expand-on-click-node="false"
+                  @node-click="handleNodeClick"
+                  current-node-key="ASSIST_UNIT"
+                  node-key="dictType"
+                  ref="listTree"
+                >
+                </el-tree>
+              </zj-page-fill>
+            </zj-page-container>
+          </div>
+          <template-page
+            ref="pageRef"
+            :getList="getList"
+            :columnParsing="columnParsing"
+            :optionsEvensGroup="optionsEvensGroup"
+            :tableAttributes="tableAttributes"
+            :tableEvents="tableEvents"
+            :operationColumnWidth="160"
+            :operation="operation()"
+            :exportList="exportList"
+          >
+          </template-page>
+        </zj-page-container>
+      </div>
+      <div v-if="~['add', 'detail'].indexOf(activeKey)" style="box-sizing: border-box; padding: 16px">
+        <zj-form-container ref="formRef" :form-data="formData" :styleSwitch="false">
+          <zj-form-module
+            :title="data.label"
+            label-width="100px"
+            :showPackUp="false"
+            :form-data="formData"
+            :form-items="formItems"
+            :disabled="formDialogType == 2"
+          >
+          </zj-form-module>
+        </zj-form-container>
+        <div slot="footer" class="dialog-footer">
+          <el-button size="mini" @click="data.removeTab()">取 消</el-button>
+          <el-button size="mini" type="primary" @click="formConfirm(data.removeTab)">确定</el-button>
+        </div>
+      </div>
+    </template>
+  </zj-tab-page>
 </template>
 
 <script>
@@ -45,313 +69,333 @@ import AddDataDictionary from './addDataDictionary.vue'
 import import_mixin from '@/components/template/import_mixin.js'
 import { required } from '@/components/template/rules_verify.js'
 import { commonTemplateDownload } from '@/api/common.js'
-import { getType, getDataDictionaryExport, getDataDictionary, add, edit, del, getDetail, listImport } from '@/api/dataDictionary.js'
+import {
+  getType,
+  getDataDictionaryExport,
+  getDataDictionary,
+  add,
+  edit,
+  del,
+  getDetail,
+  listImport
+} from '@/api/dataDictionary.js'
 export default {
-	components: {
-		TemplatePage,
-		AddDataDictionary
-	},
-	mixins: [import_mixin],
-	data() {
-		return {
-			// 事件组合
-			optionsEvensGroup: [
-				[
-					[
-						{
-							name: '新增',
-							click: this.addData
-						}
-					]
-				],
-				[
-					[
-						{
-							name: '下载导入模板',
-							click: this.handleDownload
-						}
-					],
-					[
-						{
-							name: '导入模板',
-							render: () => {
-								return this.importButton(listImport, '导入模板')
-							}
-						}
-					],
-				]
-			],
-			// 表格属性
-			tableAttributes: {},
-			// 表格事件
-			tableEvents: {},
-			visible: false,
-			item: null,
-			dictType: 'ASSIST_UNIT',
-			dictTypeName: '辅材单位',
-			typeList: [],
-			defaultProps: {
-				children: '',
-				label: 'remark'
-			},
-			/** 表单变量 */
-			formDialogType: 0,
-			formDialogTitles: ["新增", "编辑", "详情"],
-			formData: {
-				companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
-				dictType: 'ASSIST_UNIT',
-				dictTypeName: '辅材单位',
-				dictValue: '',
-				status: 'ON',
-				sortNum: '',
-				remark: ''
-			}
-		}
-	},
-	created() {
-		this.getType()
-	},
-	computed: {
-		formItems() {
-			return [{
-				md: 24,
-				isShow: true,
-				name: 'el-input',
-				attributes: { placeholder: '请输入', disabled: true },
-				formItemAttributes: {
-					label: '所属商户',
-					prop: 'companyName',
-					rules: [...required]
-				},
-			}, {
-				md: 24,
-				isShow: true,
-				name: 'el-input',
-				attributes: { placeholder: '请输入', disabled: true },
-				formItemAttributes: {
-					label: '类型名称',
-					prop: 'dictTypeName',
-					rules: [...required]
-				},
-			}, {
-				md: 24,
-				isShow: true,
-				name: 'el-input',
-				attributes: { placeholder: '请输入' },
-				formItemAttributes: {
-					label: '字典值',
-					prop: 'dictValue',
-					rules: [...required]
-				},
-			}, {
-				md: 24,
-				isShow: true,
-				name: 'slot-component',
-				attributes: {},
-				formItemAttributes: {
-					label: '状态',
-					prop: 'status',
-					rules: [...required]
-				},
-				render: (h, { props, onInput }) => {
-					var { value } = props
-					return (
-						<el-radio-group v-model={this.formData.status}>
-							<el-radio disabled={this.formDialogType == 2} label="ON">启用</el-radio>
-							<el-radio disabled={this.formDialogType == 2} label="OFF">禁用</el-radio>
-						</el-radio-group>
-					)
-				}
-			}, {
-				md: 24,
-				isShow: true,
-				name: 'el-input',
-				attributes: { placeholder: '请输入' },
-				formItemAttributes: {
-					label: '排序',
-					prop: 'sortNum',
-					rules: []
-				},
-			}, {
-				md: 24,
-				isShow: true,
-				name: 'el-input',
-				attributes: { placeholder: '请输入备注内容', type: "textarea", rows: 3 },
-				formItemAttributes: {
-					label: '备注',
-					prop: 'remark',
-					rules: []
-				}
-			}]
-		}
-	},
-	methods: {
-		// 列表请求函数
-		getList(p) {
-			try {
-				var pam = JSON.parse(JSON.stringify(p))
-				if (this.dictType) {
-					pam.params.push({ "param": "a.dict_type", "compare": "=", "value": this.dictType })
-				}
-				return getDataDictionary(pam)
-			} catch (error) {
-				console.log(error)
-			}
-		},
-		// 列表导出函数
-		exportList: getDataDictionaryExport,
-		getType() {
-			getType().then(res => {
-				this.typeList = res.data
-				this.$refs.pageRef.refreshList()
-			})
-		},
-		handleNodeClick(e) {
-			this.dictType = e.dictType
-			this.formData.dictType = e.dictType
-			this.formData.dictTypeName = e.remark
-			this.dictTypeName = e.remark
-			this.$refs.pageRef.refreshList()
-		},
-		// 表格列解析渲染数据更改
-		columnParsing(item, defaultData) {
-			return defaultData
-		},
-		operation() {
-			if (true) {
-				return (h, { row, index, column }) => {
-					return (
-						<div class="operation-btns">
-							{true ? (
-								<zj-button
-									useLoading={false}
-									parameter={[row]}
-									buttonAttributes={{
-										size: 'mini',
-										type: 'primary'
-									}}
-									buttonEvents={{
-										click: (row) => {
-											this.$refs.tabPage.addTab({
-												// 对应显示的模块
-												activeKey: "detail",
-												// 唯一标识
-												key: "detail",
-												// 页签名称
-												label: "编辑",
-												// 打开时事件
-												triggerEvent: () => {
-													this.formCancel()
-													this.formDialogType = 1
-													this.$nextTick(() => {
-														this.formData = row
-													})
-												},
-												// 关闭时事件
-												closeEvent: () => {
-												}
-											})
-										}
-									}}
-								>
-									编辑
-								</zj-button>
-							) : null}
-							{true ? (
-								<el-popconfirm
-									icon="el-icon-info"
-									icon-color="red"
-									title="这是一段内容确定删除吗?"
-									onConfirm={() => {
-										del({ id: row.sysDictId })
-											.then(res => {
-												this.$refs.pageRef.refreshList()
-												this.$message({
-													type: 'success',
-													message: `删除成功!`
-												})
-											})
-											.catch(err => {
-												console.log(err)
-											})
-									}}
-								>
-									<zj-button
-										slot="reference"
-										buttonAttributes={{
-											size: 'mini',
-											type: 'danger'
-										}}
-									>
-										删除
-									</zj-button>
-								</el-popconfirm>
-							) : null}
-						</div>
-					)
-				}
-			}
-			return undefined
-		},
-		addData() {
-			this.$refs.tabPage.addTab({
-				// 对应显示的模块
-				activeKey: "add",
-				// 唯一标识
-				key: "add",
-				// 页签名称
-				label: "新增",
-				// 打开时事件
-				triggerEvent: () => {
-					this.formCancel()
-					this.formDialogType = 0
-				},
-				// 关闭时事件
-				closeEvent: () => {
-				}
-			})
-		},
-		formCancel() {
-			this.$refs?.formRef?.$refs?.inlineForm?.clearValidate();
-			this.$data.formData = this.$options.data().formData;
-			this.formData.dictType = this.dictType;
-			this.formData.dictTypeName = this.dictTypeName;
-		},
-		formConfirm(removeTab) {
-			this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
-				if (valid) {
-					([add, edit][this.formDialogType])(this.formData).then(res => {
-						this.$message({
-							type: 'success',
-							message: this.formDialogTitles[this.formDialogType] + `成功!`
-						})
-						this.$refs.pageRef.refreshList();
-						removeTab('list')
-					})
-				}
-			})
-		},
-		// 下载导入模版
-		handleDownload() {
-			commonTemplateDownload({ name: '数据字典导入.xlsx' }, `${this.$route.meta.title}`).then(res => {
-				this.$message({
-					message: '下载成功',
-					type: 'success'
-				})
-			}).catch(err => {
-				this.$message.error('下载失败')
-			})
-		},
-	}
+  components: {
+    TemplatePage,
+    AddDataDictionary
+  },
+  mixins: [import_mixin],
+  data() {
+    return {
+      // 事件组合
+      optionsEvensGroup: [
+        [
+          [
+            {
+              name: '新增',
+              click: this.addData
+            }
+          ]
+        ],
+        [
+          [
+            {
+              name: '下载导入模板',
+              click: this.handleDownload
+            }
+          ],
+          [
+            {
+              name: '导入模板',
+              render: () => {
+                return this.importButton(listImport, '导入模板')
+              }
+            }
+          ]
+        ]
+      ],
+      // 表格属性
+      tableAttributes: {},
+      // 表格事件
+      tableEvents: {},
+      visible: false,
+      item: null,
+      dictType: 'ASSIST_UNIT',
+      dictTypeName: '辅材单位',
+      typeList: [],
+      defaultProps: {
+        children: '',
+        label: 'remark'
+      },
+      /** 表单变量 */
+      formDialogType: 0,
+      formDialogTitles: ['新增', '编辑', '详情'],
+      formData: {
+        companyName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
+        dictType: 'ASSIST_UNIT',
+        dictTypeName: '辅材单位',
+        dictValue: '',
+        status: 'ON',
+        sortNum: '',
+        remark: ''
+      }
+    }
+  },
+  created() {
+    this.getType()
+  },
+  computed: {
+    formItems() {
+      return [
+        {
+          md: 24,
+          isShow: true,
+          name: 'el-input',
+          attributes: { placeholder: '请输入', disabled: true },
+          formItemAttributes: {
+            label: '所属商户',
+            prop: 'companyName',
+            rules: [...required]
+          }
+        },
+        {
+          md: 24,
+          isShow: true,
+          name: 'el-input',
+          attributes: { placeholder: '请输入', disabled: true },
+          formItemAttributes: {
+            label: '类型名称',
+            prop: 'dictTypeName',
+            rules: [...required]
+          }
+        },
+        {
+          md: 24,
+          isShow: true,
+          name: 'el-input',
+          attributes: { placeholder: '请输入' },
+          formItemAttributes: {
+            label: '字典值',
+            prop: 'dictValue',
+            rules: [...required]
+          }
+        },
+        {
+          md: 24,
+          isShow: true,
+          name: 'slot-component',
+          attributes: {},
+          formItemAttributes: {
+            label: '状态',
+            prop: 'status',
+            rules: [...required]
+          },
+          render: (h, { props, onInput }) => {
+            var { value } = props
+            return (
+              <el-radio-group v-model={this.formData.status}>
+                <el-radio disabled={this.formDialogType == 2} label="ON">
+                  启用
+                </el-radio>
+                <el-radio disabled={this.formDialogType == 2} label="OFF">
+                  禁用
+                </el-radio>
+              </el-radio-group>
+            )
+          }
+        },
+        {
+          md: 24,
+          isShow: true,
+          name: 'el-input',
+          attributes: { placeholder: '请输入' },
+          formItemAttributes: {
+            label: '排序',
+            prop: 'sortNum',
+            rules: []
+          }
+        },
+        {
+          md: 24,
+          isShow: true,
+          name: 'el-input',
+          attributes: { placeholder: '请输入备注内容', type: 'textarea', rows: 3 },
+          formItemAttributes: {
+            label: '备注',
+            prop: 'remark',
+            rules: []
+          }
+        }
+      ]
+    }
+  },
+  methods: {
+    // 列表请求函数
+    getList(p) {
+      try {
+        var pam = JSON.parse(JSON.stringify(p))
+        if (this.dictType) {
+          pam.params.push({ param: 'a.dict_type', compare: '=', value: this.dictType })
+        }
+        return getDataDictionary(pam)
+      } catch (error) {
+        console.log(error)
+      }
+    },
+    // 列表导出函数
+    exportList: getDataDictionaryExport,
+    getType() {
+      getType().then(res => {
+        this.typeList = res.data
+        this.$refs.pageRef.refreshList()
+      })
+    },
+    handleNodeClick(e) {
+      this.dictType = e.dictType
+      this.formData.dictType = e.dictType
+      this.formData.dictTypeName = e.remark
+      this.dictTypeName = e.remark
+      this.$refs.pageRef.refreshList()
+    },
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    operation() {
+      if (true) {
+        return (h, { row, index, column }) => {
+          return (
+            <div class="operation-btns">
+              {true ? (
+                <zj-button
+                  useLoading={false}
+                  parameter={[row]}
+                  buttonAttributes={{
+                    size: 'mini',
+                    type: 'primary'
+                  }}
+                  buttonEvents={{
+                    click: row => {
+                      this.$refs.tabPage.addTab({
+                        // 对应显示的模块
+                        activeKey: 'detail',
+                        // 唯一标识
+                        key: 'detail',
+                        // 页签名称
+                        label: '编辑',
+                        // 打开时事件
+                        triggerEvent: () => {
+                          this.formCancel()
+                          this.formDialogType = 1
+                          this.$nextTick(() => {
+                            this.formData = row
+                          })
+                        },
+                        // 关闭时事件
+                        closeEvent: () => {}
+                      })
+                    }
+                  }}
+                >
+                  编辑
+                </zj-button>
+              ) : null}
+              {true ? (
+                <el-popconfirm
+                  icon="el-icon-info"
+                  icon-color="red"
+                  title="这是一段内容确定删除吗?"
+                  onConfirm={() => {
+                    del({ id: row.sysDictId })
+                      .then(res => {
+                        this.$refs.pageRef.refreshList()
+                        this.$message({
+                          type: 'success',
+                          message: `删除成功!`
+                        })
+                      })
+                      .catch(err => {
+                        console.log(err)
+                      })
+                  }}
+                >
+                  <zj-button
+                    slot="reference"
+                    buttonAttributes={{
+                      size: 'mini',
+                      type: 'danger'
+                    }}
+                  >
+                    删除
+                  </zj-button>
+                </el-popconfirm>
+              ) : null}
+            </div>
+          )
+        }
+      }
+      return undefined
+    },
+    addData() {
+      this.$refs.tabPage.addTab({
+        // 对应显示的模块
+        activeKey: 'add',
+        // 唯一标识
+        key: 'add',
+        // 页签名称
+        label: '新增',
+        // 打开时事件
+        triggerEvent: () => {
+          this.formCancel()
+          this.formDialogType = 0
+        },
+        // 关闭时事件
+        closeEvent: () => {}
+      })
+    },
+    formCancel() {
+      this.$refs?.formRef?.$refs?.inlineForm?.clearValidate()
+      this.$data.formData = this.$options.data().formData
+      this.formData.dictType = this.dictType
+      this.formData.dictTypeName = this.dictTypeName
+    },
+    formConfirm(removeTab) {
+      this.$refs.formRef.validate((valid, invalidFields, errLabels) => {
+        if (valid) {
+          ;[add, edit][this.formDialogType](this.formData).then(res => {
+            this.$message({
+              type: 'success',
+              message: this.formDialogTitles[this.formDialogType] + `成功!`
+            })
+            this.$refs.pageRef.refreshList()
+            removeTab('list')
+          })
+        }
+      })
+    },
+    // 下载导入模版
+    handleDownload() {
+      commonTemplateDownload({ name: '数据字典导入.xlsx' }, `${this.$route.meta.title}`)
+        .then(res => {
+          this.$message({
+            message: '下载成功',
+            type: 'success'
+          })
+        })
+        .catch(err => {
+          this.$message.error('下载失败')
+        })
+    }
+  }
 }
 </script>
 
 <style lang="scss" scoped>
 .title {
-	width: 120px;
-	margin: 24px 0 20px 20px;
-	padding-bottom: 10px;
-	border-bottom: 1px solid #cccccc;
-	font-weight: bold;
+  width: 120px;
+  margin: 24px 0 20px 20px;
+  padding-bottom: 10px;
+  border-bottom: 1px solid #cccccc;
+  font-weight: bold;
 }
 </style>

+ 151 - 0
src/views/setting/departmentManagement/index.vue

@@ -0,0 +1,151 @@
+<template>
+  <zj-page-container direction="row">
+    <div style="min-width: 220px; height: 100%">
+      <zj-page-container>
+        <div class="title">
+          <el-button style="margin-right: 5px" size="mini" icon="el-icon-search"></el-button>
+          <el-input size="mini" v-model="inputText" placeholder="请输入内容"></el-input>
+        </div>
+        <zj-page-fill>
+          <el-tree
+            :data="treeList"
+            :props="defaultProps"
+            default-expand-all
+            :highlight-current="true"
+            :expand-on-click-node="false"
+            @node-click="handleNodeClick"
+            current-node-key="ASSIST_UNIT"
+            node-key="dictType"
+            ref="listTree"
+          >
+            <span class="custom-tree-node" slot-scope="{ node, data }">
+              <span>{{ node.label }}</span>
+              <span>
+                <el-button size="mini" type="text" @click="addbumen(data)">
+                  <i class="el-icon-plus"></i>
+                </el-button>
+                <el-button size="mini" type="text" @click="eidbumen(data)">
+                  <i class="el-icon-edit"></i>
+                </el-button>
+                <el-button size="mini" type="text" @click="delbumen(data)">
+                  <i class="el-icon-delete"></i>
+                </el-button>
+              </span>
+            </span>
+          </el-tree>
+        </zj-page-fill>
+      </zj-page-container>
+    </div>
+    <template-page
+      ref="pageRef"
+      :getList="getList"
+      :columnParsing="columnParsing"
+      :optionsEvensGroup="optionsEvensGroup"
+      :tableAttributes="tableAttributes"
+      :tableEvents="tableEvents"
+      :operationColumnWidth="160"
+      :operation="operation()"
+      :exportList="exportList"
+    >
+    </template-page>
+  </zj-page-container>
+</template>
+
+<script>
+import TemplatePage from '@/components/template/template-page-1.vue'
+import { required } from '@/components/template/rules_verify.js'
+import {
+  adminDeptList,
+  adminDeptListExport,
+  adminDeptTree,
+  adminDeptAdd,
+  adminDeptUpdate,
+  adminDeptDel,
+  adminDeptAddWebsit,
+  adminDeptUpdateWebsit,
+  adminDeptDelWebsit
+} from '@/api/departmentManagement.js'
+import operation_mixin from '@/components/template/operation_mixin.js'
+export default {
+  components: {
+    TemplatePage
+  },
+  mixins: [operation_mixin],
+  data() {
+    return {
+      // 事件组合
+      optionsEvensGroup: [],
+      // 表格属性
+      tableAttributes: {},
+      // 表格事件
+      tableEvents: {},
+      visible: false,
+      item: null,
+      treeList: [],
+      defaultProps: {
+        children: 'children',
+        label: 'deptName'
+      },
+      inputText: ''
+    }
+  },
+  mounted() {
+    this.getTreeListData()
+  },
+  computed: {
+    formItems() {
+      return []
+    }
+  },
+  methods: {
+    // 请求属性数据
+    getTreeListData() {
+      adminDeptTree().then(res => {
+        this.treeList = res.data
+        this.$refs.pageRef.refreshList()
+      })
+    },
+    // 树形选中
+    handleNodeClick(e) {},
+    // 列表请求函数
+    getList: adminDeptList,
+    // 列表导出函数
+    exportList: adminDeptListExport,
+    // 表格列解析渲染数据更改
+    columnParsing(item, defaultData) {
+      return defaultData
+    },
+    operation() {
+      return this.operationBtn({
+        save: {
+          click: ({ row, index, column }) => {}
+        },
+        del: {
+          click: ({ row, index, column }) => {}
+        }
+      })
+    },
+    addbumen(data) {},
+    eidbumen(data) {},
+    delbumen(data) {}
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.title {
+  width: 100%;
+  padding: 20px 0 10px 20px;
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 10px;
+  border-bottom: 1px solid #cccccc;
+  font-weight: bold;
+}
+.custom-tree-node {
+  flex: 1;
+  display: flex;
+  justify-content: space-between;
+  align-content: center;
+}
+</style>