Просмотр исходного кода

feature/oms:区域相关信息编辑修改删除的功能异常

yanglingling 1 год назад
Родитель
Сommit
25755737dc

+ 6 - 0
src/api/base/region.js

@@ -9,6 +9,12 @@ export default {
   createRegion(query) {
     return micro_request.postRequest(basePath, 'Region', 'CreateRegion', query) //创建销售区域
   },
+  updateRegion(query) {
+    return micro_request.postRequest(basePath, 'Region', 'UpdateRegionById', query) //修改销售区域
+  },
+  deleteRegion(query) {
+    return micro_request.postRequest(basePath, 'Region', 'DeleteRegionById', query) //删除销售区域
+  },
   createRegionDetail(query) {
     return micro_request.postRequest(basePath, 'Region', 'CreateRegionDetail', query) //创建区域
   },

+ 2 - 2
src/config/cli.config.js

@@ -21,7 +21,7 @@ module.exports = {
   // npm run build时是否自动生成7z压缩包
   build7z: false,
   // npm run build时是否生成gzip
-  buildGzip: false,
+  buildGzip: true,
   // npm run build时是否开启图片压缩,由于国内网路原因image-webpack-loader必须使用cnpm安装,如无法使用cnpm,请配置false
-  imageCompression: true,
+  imageCompression: false,
 }

+ 32 - 3
src/views/base/region/components/RegionDetailsEdit.vue

@@ -2,9 +2,17 @@
   <el-dialog :title="title" :visible.sync="dialogFormVisible" width="500px" @close="close">
     <el-form ref="form" label-width="80px" :model="form" :rules="rules">
       <el-form-item label="省份选择" prop="distId">
-        <el-select ref="optionRef" v-model="form.distId" placeholder="请选择" @change="selectDistrict">
-          <el-option v-for="item in district" :key="item.id" :label="item.distName" :value="item.id" />
-        </el-select>
+        <!--        <el-select ref="optionRef" v-model="form.distId" placeholder="请选择" @change="selectDistrict">-->
+        <!--          <el-option v-for="item in district" :key="item.id" :label="item.distName" :value="item.id" />-->
+        <!--        </el-select>-->
+        <el-cascader
+          ref="districtRef"
+          v-model="form.distId"
+          clearable
+          :options="district"
+          placeholder="请选择省份"
+          :props="props"
+          @change="handleChange" />
       </el-form-item>
       <el-form-item label="备注">
         <el-input v-model="form.remark" type="textarea" />
@@ -32,6 +40,13 @@
           distName: undefined,
           remark: undefined,
         },
+        props: {
+          value: 'id',
+          label: 'distName',
+          children: 'children',
+          multiple: false,
+          // checkStrictly: true,
+        },
         rules: {
           distId: [{ required: true, trigger: 'blur', message: '请选择省份' }],
         },
@@ -46,6 +61,10 @@
       this.getProvinceInfo()
     },
     methods: {
+      // 省份选择改变时
+      handleChange(value) {
+        console.log(value)
+      },
       setRegion(id) {
         this.regionId = id
         this.form.regionId = id
@@ -79,6 +98,16 @@
       save() {
         this.$refs['form'].validate(async (valid) => {
           if (valid) {
+            let node = this.$refs.districtRef.getCheckedNodes()[0]
+            if (node?.parent) {
+              this.form.custCityId = node?.value // 所在市id
+              this.form.custCity = node?.label // 所在市
+              this.form.custProvinceId = node?.parent?.value // 所在省id
+              this.form.custProvince = node?.parent?.label // 所在省
+            } else {
+              this.form.custProvinceId = node?.value // 所在省id
+              this.form.custProvince = node?.label // 所在省
+            }
             if (this.form.id) {
               console.log(this.form)
               const { msg } = await regionApi.updateRegionDetail(this.form)

+ 36 - 13
src/views/base/region/index.vue

@@ -16,9 +16,15 @@
           node-key="id"
           :props="defaultProps"
           @node-click="handleNodeClick">
-          <span slot-scope="{ node }" class="custom-tree-node">
+          <span slot-scope="{ node, data }" class="custom-tree-node">
             <span>
-              <el-input v-if="editId == node.id" :ref="node.id" v-model="node.label" size="mini" @blur="editEnd" />
+              <el-input
+                v-if="editId == node.id"
+                :ref="node.id"
+                v-model="editedLabel"
+                size="mini"
+                @blur="editEnd(node, data)"
+                @focus="startEdit(node)" />
               <span v-else>{{ node.label }}</span>
             </span>
             <span>
@@ -157,6 +163,8 @@
     components: { RegionDetailsEdit, RegionEdit, TableTool },
     data() {
       return {
+        editingNode: null, // 用于存储当前正在编辑的节点信息
+        editedLabel: '', // 用于存储编辑中的标签文本
         tableKey: 0,
         current: '',
         list: [],
@@ -250,7 +258,7 @@
         }
       },
       async treeHandle(command, node) {
-        console.log(command, node, '111111111')
+        // console.log(command, node, '111111111')
         if (command == 'edit') {
           this.editId = node.id
           await this.$nextTick()
@@ -261,14 +269,14 @@
             cancelButtonText: '取消',
             type: 'warning',
           })
-            .then(() => {
-              if (node.id == this.regionId) {
-                this.regionId = 0
-                this.getRegionList()
-              }
+            .then(async () => {
+              // 删除
+              const { msg } = await regionApi.deleteRegion({ id: this.regionId })
+              this.regionId = 0
+              this.getRegionList()
               this.$message({
                 type: 'success',
-                message: '删除成功!',
+                message: msg,
               })
             })
             .catch(() => {
@@ -279,13 +287,22 @@
             })
         }
       },
-      editEnd(val) {
+      startEdit(node) {
+        this.editingNode = node // 记录当前编辑的节点
+        this.editedLabel = node.label // 将当前标签值复制到 editedLabel
+      },
+      async editEnd(node, data) {
         const params = {
-          id: this.editId,
-          name: val,
+          id: data.id,
+          regionDesc: this.editedLabel,
         }
-        params
+        const { msg } = await regionApi.updateRegion(params)
+        this.$baseMessage(msg, 'success', 'vab-hey-message-success')
         this.editId = ''
+        if (this.editingNode) {
+          this.editingNode = null // 清理编辑状态
+          this.editedLabel = '' // 重置编辑标签文本
+        }
         this.getRegionList()
       },
       getOptions() {
@@ -371,6 +388,12 @@
           data: { list, total },
         } = await regionApi.getRegionDetailList(this.queryForm)
         this.list = list
+        // 遍历list
+        if (this.list != null) {
+          this.list.forEach((item) => {
+            item.distId = [item.custProvinceId, item.custCityId]
+          })
+        }
         this.total = total
         this.listLoading = false
         this.tableKey++