Browse Source

代码上传

zhangqiOMG 2 years ago
parent
commit
7dcb9b3ada

+ 98 - 0
src/HDrpManagement/BrandManage/component/saleclass/components/addTop.vue

@@ -0,0 +1,98 @@
+<template>
+  <div class="add">
+    <el-button size="mini" type="primary" @click="dialogVisible=true">新增一级分类</el-button>
+    <el-dialog
+      title="新增一级分类"
+      :visible.sync="dialogVisible"
+      width="500px"
+      append-to-body
+      :before-close="handleClose">
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+        <el-form-item label="营销类别名" prop="itemclassname">
+          <div class="flex-align-center">
+            <el-input v-model="ruleForm.itemclassname" size="small" class="inline-16" placeholder="请输入营销类别名">
+            </el-input>
+            <el-input v-model="ruleForm.num" size="small" style="width:90px" placeholder="排序">
+            </el-input>
+          </div>
+        </el-form-item>
+        <el-form-item label="营销类别编号" prop="itemclassnum">
+          <el-input v-model="ruleForm.itemclassnum"  size="small" placeholder="请输入营销类别编号"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-checkbox v-model="ruleForm.istool" :true-label="1" :false-label="0">是否工具</el-checkbox>
+          <el-checkbox v-model="ruleForm.ishide" :true-label="1" :false-label="0">是否隐藏</el-checkbox>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <div>
+          <el-button @click="dialogVisible = false" size="small">取 消</el-button>
+          <el-button type="primary" @click="submit" size="small">确 定</el-button>
+        </div>
+      </span>
+    </el-dialog>
+  </div>
+  
+</template>
+
+<script>
+export default {
+  name: '',
+  data() {
+    return {
+      currentData:'',
+      dialogVisible:false,
+      ruleForm: {
+        "itemclassnum":'',
+        "itemclassname":'',
+      },
+      rules:{
+        itemclassname: [
+          { required: true, message: '请输入营销类别名', trigger: 'blur' },
+        ],
+        itemclassnum: [
+          { required: true, message: '请输入营销类别编号', trigger: 'blur' },
+        ],
+      }
+    }
+  },
+  props:['type','sa_brandid'],
+  computed:{
+  },
+  methods: {
+    handleClose() {
+      this.dialogVisible = false
+    },
+    submit() {
+      this.$refs.ruleForm.validate(async val => {
+        if(val) {
+          let res = await this.$api.requested({
+            "accesstoken": "bed2f4500c0e799a29ddbbe47a2a04b6",
+            "id": "20220922110303",
+            "version":1,
+            "content": {
+                "itemclassid":0,     
+                "sa_brandid":this.sa_brandid,
+                "parentid":0,
+                "itemclassnum":this.ruleForm.itemclassnum,
+                "itemclassname":this.ruleForm.itemclassname,
+                "num":this.ruleForm.num,
+                "istool":this.ruleForm.istool,
+                "ishide":this.ruleForm.ishide,
+                "classtype":"营销"
+            }
+          })
+          this.tool.showMessage(res,() => {
+            this.$emit('addSuccess')
+            this.$refs.ruleForm.resetFields()
+            this.dialogVisible = false
+          })
+        }
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+</style>

+ 1 - 1
src/HDrpManagement/BrandManage/component/saleclass/components/delete.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="padding-left:10px">
     <el-popconfirm title="确定删除当前数据吗?" @confirm="deleteRow()">
-      <i class="el-icon-delete" slot="reference"></i>
+      <el-button size="mini" type="text"  slot="reference" icon="el-icon-delete">删 除</el-button>
     </el-popconfirm>
   </div>
 </template>

+ 4 - 20
src/HDrpManagement/BrandManage/component/saleclass/components/edit.vue

@@ -1,11 +1,12 @@
 <template>
   <div class="add">
-    <i style="font-weight:bold" class="el-icon-plus" @click="dialogVisible=true" v-if="type=='add'"></i>
-    <i class="el-icon-edit" @click="editBtn" v-else></i>
+    <el-button size="mini" type="text"  @click="dialogVisible=true" v-if="type=='add'" icon="el-icon-plus">新增下级</el-button>
+    <el-button size="mini" type="text" @click="editBtn" icon="el-icon-edit"  v-else>编 辑</el-button>
     <el-dialog
       :title="type == 'add' ? '新增营销类别' : '编辑营销类别'"
       :visible.sync="dialogVisible"
-      width="30%"
+      width="400px"
+      append-to-body
       :before-close="handleClose">
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
         <el-form-item label="营销类别名" prop="itemclassname">
@@ -14,9 +15,6 @@
         <el-form-item label="营销类别编号" prop="itemclassnum">
           <el-input v-model="ruleForm.itemclassnum" :disabled="type!='add'" size="small" placeholder="请输入营销类别编号"></el-input>
         </el-form-item>
-        <!-- <el-form-item label="营销类别全称" prop="itemclassfullname">
-          <el-input v-model="ruleForm.itemclassfullname" size="small" placeholder="请输入营销类别全称"></el-input>
-        </el-form-item> -->
       </el-form>
       <span slot="footer" class="dialog-footer">
         <div>
@@ -104,18 +102,4 @@ export default {
 </script>
 
 <style scoped>
-  .dialog-footer {
-    display: flex;
-    justify-content: space-evenly;
-  }
-  /deep/.el-dialog__body {
-    padding-top: 10px !important;
-    padding-bottom: 0 !important;
-  }
-  /deep/.dialog-footer {
-    margin-top: 10px !important;
-  }
-  /deep/.el-select {
-    width: 100% !important;
-  }
 </style>

+ 0 - 59
src/HDrpManagement/BrandManage/component/saleclass/index copy.vue

@@ -1,59 +0,0 @@
-<template>
-  <div class="brand normal-panel">
-    <dep-list @onClick="onClick" ref="list">
-      <template v-slot:add="scope">
-        <Edit type="add" @addSuccess="addSuccess" :rowData="scope.data" v-if="tool.checkAuth($route.name,'insert')"/>
-      </template>
-      <template v-slot:edit="scope">
-        <Edit type="edit" @addSuccess="addSuccess" v-if="scope.data.itemclassid && tool.checkAuth($route.name,'update')" :rowData="scope.data"/>
-      </template>
-      <template v-slot:del="scope">
-        <Del :id="scope.data.itemclassid" @deleteSuccess="deleteSuccess" v-if="scope.data.itemclassid && tool.checkAuth($route.name,'delete')"/>
-      </template>
-    </dep-list>
-  </div>
-</template>
-
-<script>
-import DepList from './components/dep_list'
-import Edit from './components/edit'
-import Del from './components/delete'
-export default {
-  name: '',
-  
-  data() {
-    return {
-      tablecols1:'',
-      list:''
-    };
-  },
-  components: {DepList,Edit,Del},
-  computed:{
-  },
-  watch:{
-  },
-  created() {
-    this.tablecols1 = this.tool.tabelCol(this.$route.name).salesTable.tablecols
-  },
-  methods: {
-    onClick(node) {
-      console.log(node);
-      this.list = [node.data]
-      // this.list = node
-    },
-    addSuccess() {
-      this.$refs.list.department()
-    },
-    deleteSuccess() {
-      this.$refs.list.department()
-    }
-  },
-};
-</script>
-
-<style scoped>
-  .brand {
-    height: calc(100vh - 100px);
-    display:flex;
-  }
-</style>

+ 109 - 11
src/HDrpManagement/BrandManage/component/saleclass/index.vue

@@ -1,29 +1,88 @@
 <template>
   <div class="brand">
+    <addTop class="mt-10" :sa_brandid="data.sa_brandid" @addSuccess="department"></addTop>
     <el-table
       :data="tableData"
-      row-key="id"
       border
-      :tree-props="{children: 'subdep', hasChildren: 'hasChildren'}">
+      stripe
+      row-key="itemclassid"
+      default-expand-all
+      size="small"
+      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+      <el-table-column
+        prop="num"
+        label="序号"
+        width="80">
+      </el-table-column>
+      <el-table-column
+        prop="itemclassfullname"
+        show-overflow-tooltip
+        label="类别名称"
+        width="200">
+        <template slot-scope="scope">
+          <span style="color:#3874f6"><b>{{scope.row.itemclassfullname}}</b></span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="itemclassnum"
+        label="上级类别">
+      </el-table-column>
+      <el-table-column
+        prop="itemclassnum"
+        label="类别编码">
+      </el-table-column>
       <el-table-column
         prop="itemclassname"
-        label="分类名称">
+        label="类别简称">
+        <template slot-scope="scope">
+          <span style="color:#3874f6"><b>{{scope.row.itemclassname}}</b></span>
+        </template>
       </el-table-column>
       <el-table-column
         prop="itemclassnum"
-        label="分类编号">
+        label="是否末级">
+        <template slot-scope="scope">
+          {{scope.row.isdeep === 1?'是':'否'}}
+        </template>
+      </el-table-column>
+       <el-table-column
+        prop="itemclassnum"
+        label="是否工具">
+        <template slot-scope="scope">
+          {{scope.row.istool === 1?'是':'否'}}
+        </template>
       </el-table-column>
       <el-table-column
-        prop="address"
-        label="地址">
+        prop="itemclassnum"
+        label="是否隐藏">
+         <template slot-scope="scope">
+          {{scope.row.ishide === 1?'是':'否'}}
+        </template>
       </el-table-column>
+      <!-- <el-table-column
+        label="操作"
+        width="200">
+        <template slot-scope="scope">
+          <Edit class="inline-16" type="add" @addSuccess="addSuccess" :rowData="scope.row"/>
+          <Edit class="inline-16" type="edit" @addSuccess="addSuccess" :rowData="scope.row"/>
+          <Del  class="inline-16" :id="scope.row.itemclassid" @deleteSuccess="deleteSuccess"/>
+        </template>
+      </el-table-column> -->
     </el-table>
   </div>
 </template>
 
 <script>
+import addTop from './components/addTop.vue'
+import Edit from './components/edit.vue'
+import Del from './components/delete.vue'
 export default {
   props:['data'],
+  components:{
+    addTop,
+    Edit,
+    Del
+  },
   data() {
     return {
       tableData:[]
@@ -40,7 +99,50 @@ export default {
           "sa_brandid":this.data.sa_brandid
         }
       })
-      this.tableData = res.data[0].ttemclass
+      this.tableData = this.createTreeData(res.data[0].ttemclass)
+      
+    },
+    createTreeData (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        // 新节点
+        var elNode = {
+          num:node['num'],
+          itemclassfullname:node['itemclassfullname'],
+          itemclassname: node["itemclassname"],
+          parentid:node['parentid'],
+          itemclassid:node['itemclassid'],
+          itemclassnum:node['itemclassnum'],
+          sa_brandid:that.data.sa_brandid,
+          ishide:node['ishide'],
+          isdeep:node['isdeep'],
+          istool:node['istool'],
+          children: []
+        }
+          
+        if (node.subdep && node.subdep.length > 0) {
+          // 如果存在子节点
+          for (var index = 0; index < node.subdep.length; index++) {
+          // 遍历子节点, 把每个子节点看做一颗独立的树, 传入递归构造子树, 并把结果放回到新node的children中
+          elNode.children.push(convertToElementTree(node.subdep[index]));
+          }
+        }
+        return elNode;
+      }
+      array.forEach((element) => {
+        arr.push(convertToElementTree(element))
+      });
+      return arr
+    },
+    addTopClass () {
+
+    },
+    addSuccess() {
+      this.department()
+    },
+    deleteSuccess() {
+      this.department()
     }
   },
   mounted () {
@@ -50,8 +152,4 @@ export default {
 </script>
 
 <style scoped>
-  .brand {
-    height: calc(100vh - 100px);
-    display:flex;
-  }
 </style>

+ 1 - 1
src/HDrpManagement/BrandManage/modules/edit.vue

@@ -4,7 +4,7 @@
     <el-drawer
       title="编辑品牌"
       :visible.sync="drawer"
-      size="800px"
+      size="900px"
       direction="rtl"
       append-to-body>
       <div class="drawer__panel">

+ 1 - 4
src/HDrpManagement/saleclass/index.vue

@@ -52,8 +52,5 @@ export default {
 </script>
 
 <style scoped>
-  .brand {
-    height: calc(100vh - 100px);
-    display:flex;
-  }
+
 </style>

+ 3 - 0
src/SManagement/sales_forecast/modules/modelDetail.vue

@@ -28,6 +28,9 @@
           <el-col :span="24">
             <project :mainData="mainData" @queryProduct="queryProduct" ref="project"></project>
           </el-col>
+          <el-col :span="24">
+            <div style="border-bottom:1px solid #f1f2f3;margin-bottom:16px"></div>
+          </el-col>
           <el-col :span="24">
             <product  :mainData="mainData" ref="prod" @onSuccess='queryMainData'></product>
           </el-col>

+ 1 - 1
src/components/normal-basic-layout/details/index.vue

@@ -20,7 +20,7 @@
       </div>
       <div>
         <el-descriptions :column="5" size="mini">
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAreaData" :key="item.index" :label="item.label"><span :style="item.style?item.style():''">{{item.value?item.value:'--'}}</span></el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" v-for="item in mainAreaData" :key="item.index" :label="item.label"><span :style="item.style?item.style():''">{{item.value !== ''?item.value:'--'}}</span></el-descriptions-item>
         </el-descriptions>
       </div>
     </div>

+ 7 - 15
src/components/normal-basic-layout/details/modules/tags/tag.vue

@@ -9,19 +9,20 @@
     </div>
     <el-select
       v-else
+      ref="sle"
       style="width:30%;"
       v-model="datatag"
       multiple
       placeholder="请选择标签"
       size="mini"
       @visible-change="addTag"
-      @change="addTag">
+      @change="addTag"
+      @remove-tag="removetag">
       <el-option
         v-for="item in option"
         :key="item.index"
         :label="item.tag"
         :value="item.tag"
-        @click.native="setMutextag(item)"
         :disabled="hasDisabledTag(item)">
         <span style="float: left">{{ item.tag }}</span>
         <span style="float: right; color: #8492a6; font-size: 12px">{{ item.helptips?item.helptips:'暂无描述' }}</span>
@@ -55,7 +56,6 @@ export default {
       this.option = res.data.option
       this.datatag = res.data.datatag
       this.systemtag = res.data.systemtag
-      this.datatag.length > 0?this.setMutextag():''
     },
     async addTag (val) {
       if (val === false) {
@@ -69,20 +69,12 @@ export default {
           }
         })
         res.code === 1?this.queryTag():''
+        
       }
     },
-    setMutextag (item) {
-      //  let _isSame = this.datatag.some(tag=>item.tag === tag)
-      //  if (_isSame) {
-      //     this.mutextag = this.mutextag.concat(item.mutextag)
-      //  } else {
-      //   let a = new Set(this.mutextag);
-      //   let b = new Set(item.mutextag); 
-      //   this.mutextag = Array.from(new Set([...a].filter(x => !b.has(x))))
-      //  }
-      // var arr = this.option.filter(item=>{
-      //     return this.datatag.includes(item.tag)
-      // })
+    removetag () {
+      this.showTag = true
+      this.addTag(false)
     },
     hasDisabledTag (item) {
       let arr = []