double 5 anos atrás
pai
commit
ebe1a66e87
3 arquivos alterados com 127 adições e 26 exclusões
  1. 10 0
      src/api/modules/sys_org.js
  2. 5 5
      src/views/menu/index.vue
  3. 112 21
      src/views/org/index.vue

+ 10 - 0
src/api/modules/sys_org.js

@@ -22,6 +22,16 @@ module.exports.del = (data) => {
   })
 }
 
+// batchDel 删除组织
+module.exports.batchDel = (data) => {
+  const url = '/api/sys/org/batch_del'
+  return axios({
+    url: url,
+    method: 'delete',
+    data
+  })
+}
+
 // update 更新组织
 module.exports.update = (data) => {
   const url = '/api/sys/org/update'

+ 5 - 5
src/views/menu/index.vue

@@ -77,8 +77,8 @@
         <el-form-item label="Com:" prop="component">
           <el-input v-model="temp.component" placeholder="Please input component" />
         </el-form-item>
-        <el-form-item label="Order:" prop="order_num">
-          <el-input v-model.number="temp.order_num" placeholder="Please input order" />
+        <el-form-item label="Order:" prop="order">
+          <el-input v-model.number="temp.order" placeholder="Please input order" />
         </el-form-item>
         <el-form-item label="Icon:" prop="icon">
           <el-input v-model="temp.icon" placeholder="Please input icon" />
@@ -154,7 +154,7 @@ export default {
           maxWidth: 180
         },
         {
-          prop: 'order_num',
+          prop: 'order',
           label: 'Order',
           align: 'center',
           minWidth: 150,
@@ -200,7 +200,7 @@ export default {
         parent: this.parent,
         inheritance: '',
         icon: '',
-        order_num: 0,
+        order: 0,
         perms: '',
         type: '',
         hidden: 0
@@ -243,7 +243,7 @@ export default {
   created() {},
   methods: {
     nodeClick(node) {
-      this.dataQuery.cn_id = node.id
+      this.dataQuery.parent = node.id
       this.$refs.qtable.getData()
     },
     getTreeDataCallBack(tree) {},

+ 112 - 21
src/views/org/index.vue

@@ -4,14 +4,14 @@
       <el-card>
         <el-container>
           <el-aside :width="treeWidth">
-            <tree :fetch="this.$api.sysOrg.tree" :query="nodeQuery" :call-back="getTreeDataCallBack" :click="nodeClick" />
+            <tree title="Org" :fetch="this.$api.sysOrg.tree" :query="nodeQuery" :call-back="getTreeDataCallBack" :click="nodeClick" />
           </el-aside>
           <el-container>
             <el-header height="120">
-              <el-form ref="searchForm" :size="size" label-position="left" label-width="80px">
+              <el-form ref="searchForm" :model="dataQuery" :size="size" label-position="left" label-width="80px">
                 <el-row :gutter="20">
                   <el-col :span="6">
-                    <el-form-item label="Name:" class="notice-input" label-width="60px">
+                    <el-form-item label="Name:" class="notice-input" label-width="60px" prop="name">
                       <el-input
                         v-model="dataQuery.name"
                         placeholder="Please input name"
@@ -21,7 +21,7 @@
                     </el-form-item>
                   </el-col>
                   <el-col :span="6">
-                    <el-form-item label="Code:" class="notice-input" label-width="60px">
+                    <el-form-item label="Code:" class="notice-input" label-width="60px" prop="code">
                       <el-input
                         v-model="dataQuery.code"
                         placeholder="Please input code"
@@ -77,8 +77,8 @@
         <el-form-item label="Com:" prop="component">
           <el-input v-model="temp.component" placeholder="Please input component" />
         </el-form-item>
-        <el-form-item label="Order:" prop="order_num">
-          <el-input v-model.number="temp.order_num" placeholder="Please input order" />
+        <el-form-item label="Order:" prop="order">
+          <el-input v-model.number="temp.order" placeholder="Please input order" />
         </el-form-item>
         <el-form-item label="Icon:" prop="icon">
           <el-input v-model="temp.icon" placeholder="Please input icon" />
@@ -104,8 +104,8 @@
         </el-form-item>
       </el-form>
       <footer slot="footer" class="dialog-footer">
-        <el-button :size="size" @click="dialogVisible = false">取 消</el-button>
-        <el-button :size="size" type="primary" @click="dialogStatus==='create'?createData():updateData()">确 定
+        <el-button :size="size" @click="dialogVisible = false">Cancel</el-button>
+        <el-button :size="size" type="primary" @click="dialogStatus==='create'?createData():updateData()">Confirm
         </el-button>
       </footer>
     </el-dialog>
@@ -154,7 +154,7 @@ export default {
           maxWidth: 180
         },
         {
-          prop: 'order_num',
+          prop: 'order',
           label: 'Order',
           align: 'center',
           minWidth: 150,
@@ -187,9 +187,7 @@ export default {
         page: 1,
         rows: 10,
         name: '',
-        code: '',
-        cn_id: '',
-        type: '0'
+        code: ''
       },
       nodeQuery: {
       },
@@ -202,7 +200,7 @@ export default {
         parent: this.parent,
         inheritance: '',
         icon: '',
-        order_num: 0,
+        order: 0,
         perms: '',
         type: '',
         hidden: 0
@@ -245,19 +243,112 @@ export default {
   created() {},
   methods: {
     nodeClick(node) {
-      this.dataQuery.cn_id = node.id
+      this.dataQuery.parent = node.id
       this.$refs.qtable.getData()
     },
     getTreeDataCallBack(tree) {},
     handleChange(value) {},
-    createData() {},
-    updateData() {},
-    search() {},
-    resetFields() {},
-    deleteData(row) {},
-    deleteBatch() {},
+    createData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          this.$api.sysOrg.add(this.temp).then(res => {
+            this.dialogVisible = false
+            if (res.code === 200) {
+              this.$message({
+                message: 'Created successfully',
+                type: 'success'
+              })
+              this.$refs.qtable.getData()
+            } else {
+              this.$message({
+                message: 'Failed to create',
+                type: 'error'
+              })
+            }
+          })
+        }
+      })
+    },
+    updateData() {
+      this.$refs['dataForm'].validate(valid => {
+        if (valid) {
+          const postData = Object.assign({}, this.temp)
+          this.$api.sysOrg.update(postData).then(res => {
+            this.dialogVisible = false
+            if (res.code === 200) {
+              this.$message({
+                message: 'modify successfully',
+                type: 'success'
+              })
+              this.$refs.qtable.getData()
+            } else {
+              this.$message({
+                message: 'change failed',
+                type: 'error'
+              })
+            }
+          })
+        }
+      })
+    },
+    search() {
+      this.$refs.qtable.getData()
+    },
+    resetFields() {
+      this.$refs['searchForm'].resetFields()
+    },
+    deleteData(row) {
+      this.$confirm('Are you sure you want to delete this user ?', 'Prompt', {
+        type: 'warning'
+      }).then(() => {
+        this.$api.sysOrg.del({ id: row.id }).then(res => {
+          if (res.code === 200) {
+            this.$message({
+              message: 'successfully deleted',
+              type: 'success'
+            })
+            this.$refs.qtable.getData()
+          } else {
+            this.$message({
+              message: 'failed to delete',
+              type: 'error'
+            })
+          }
+        })
+      })
+    },
+    deleteBatch() {
+      const ids = []
+      this.$refs.qtable.selectionData.forEach(row => {
+        ids.push({ id: row.id })
+      })
+      this.$confirm('Are you sure to delete selected data in batch ?', 'Prompt', {
+        type: 'warning'
+      }).then(() => {
+        this.$api.sysOrg.batchDel(ids).then(res => {
+          if (res.code === 200) {
+            this.$refs.qtable.getData()
+            this.$message({
+              message: 'successfully deleted',
+              type: 'success'
+            })
+          } else {
+            this.$message({
+              message: 'failed to delete',
+              type: 'error'
+            })
+          }
+        })
+      })
+    },
     dialogClose() {},
-    create() {},
+    create() {
+      this.dialogStatus = 'create'
+      this.dialogVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
     edit(row) {
       this.dialogStatus = 'update'
       this.dialogVisible = true