zhangqiOMG 2 år sedan
förälder
incheckning
aab77f54e1

+ 30 - 0
src/HDrpManagement/saleclass/components/delete.vue

@@ -0,0 +1,30 @@
+<template>
+  <div class="padding-left:10px">
+    <el-popconfirm title="确定删除当前数据吗?" @confirm="deleteRow()">
+      <i class="el-icon-delete" slot="reference"></i>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['id'],
+  methods: {
+    async deleteRow() {
+      let res = await this.$api.requested({
+          "id": "20220922110503",
+          "version":1,
+          "content": {
+              "itemclassid":this.id
+          }
+      })
+
+      console.log(res);
+      this.tool.showMessage(res,() => {
+        this.$emit('deleteSuccess')
+      })
+    },
+  }
+}
+
+</script>

+ 161 - 0
src/HDrpManagement/saleclass/components/dep_list.vue

@@ -0,0 +1,161 @@
+<template>
+  <div class="tree-panel">
+    <el-tree
+      ref="treeRef"
+      :data="deplist"
+      node-key="itemclassid"
+      :current-node-key="currentKey"
+      highlight-current
+      default-expand-all
+      :expand-on-click-node="false"
+      @node-click="handleClick">
+      <span class="custom-tree-node" slot-scope="{ node, data }">
+        <span>{{ node.label }}</span>
+        <span class="icon_btn">
+          <slot name="add" :data="data"></slot>
+          <slot name="edit" :data="data"></slot>
+          <slot name="del" :data="data"></slot>
+        </span>
+      </span>
+    </el-tree>
+  </div>
+</template>
+
+<script>
+
+
+export default {
+  components:{
+  },
+  data () {
+    return {
+      deplist:[],
+      departmentid:0,
+      currentKey:null
+    }
+  },
+  methods:{
+    async department (callback) {
+      const res = await this.$api.requested({
+          "id": "20220922110403",
+          "version":1,
+          "content": {
+              "sa_brandid":0
+          }
+      })
+      console.log(res);
+      
+      // // 数据格式转换成elementui-tree所需的格式
+      res.data = res.data.map(item => {
+        item.ttemclass.forEach(item2 => {
+          item2.sa_brandid = item.sa_brandid
+        })
+        return {
+          brandname:item.brandname,
+          rowindex:item.rowindex,
+          sa_brandid:item.sa_brandid,
+          subdep:item.ttemclass
+        }
+      })
+      this.editId(res.data)
+      this.deplist = this.createMenu(res.data)
+      callback && callback()
+    },
+    editId(array) {
+      function _editId(id,data) {
+        data.sa_brandid = id
+        if(data.subdep && data.subdep.length > 0) {
+          data.subdep.forEach(item => {
+            _editId(id,item)
+          })
+        }
+        
+      }
+      array.forEach(item => {
+        _editId(item.sa_brandid,item)
+      })
+    },
+    createMenu (array) {
+      var that = this
+      let arr = []
+      function convertToElementTree(node) {
+        // 新节点
+        var elNode = {
+          label: node["brandname"] || node['itemclassname'],
+          parentid:node['parentid'],
+          value:node['itemclassid'],
+          sa_brandid:node['sa_brandid'],
+          changeby:node["changeby"],
+          changedate:node['changedate'],
+          createby:node['createby'],
+          createdate:node['createdate'],
+          itemclassfullname:node['itemclassfullname'],
+          itemclassfullnum:node["itemclassfullnum"],
+          itemclassid:node['itemclassid'],
+          itemclassname:node['itemclassname'],
+          itemclassnum:node['itemclassnum'],
+          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
+    },
+    handleClick (row,node,VueComponent) {
+      this.$emit('onClick',node)
+    },
+    setCurrentKey (id) {
+      this.currentKey = id
+      this.$nextTick(() => {
+        this.$refs['treeRef'].setCurrentKey(this.currentKey)
+      })
+    },
+  },
+  watch: {
+  },
+  mounted () {
+    this.department(()=>{
+      this.$emit('onClick',{data:this.deplist[0].children[0]})
+      this.setCurrentKey(this.deplist[0].children[0].itemclassid)
+    })
+  }
+}
+
+</script>
+<style>
+.tree-panel .el-tree {
+  background: none;
+}
+.custom-tree-node {
+  flex: 1;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 14px;
+  padding-right: 8px;
+  background: none;
+}
+</style>
+<style scoped>
+.tree-panel{
+  padding: 16px;
+  font-size: 14px;
+  width:100%;
+  background: #FAFAFA;
+}
+.icon_btn {
+  display: flex;
+  width: 100px;
+  justify-content: space-between;
+}
+</style>

+ 120 - 0
src/HDrpManagement/saleclass/components/edit.vue

@@ -0,0 +1,120 @@
+<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-dialog
+      :title="type == 'add' ? '新增营销类别' : '编辑营销类别'"
+      :visible.sync="dialogVisible"
+      width="30%"
+      :before-close="handleClose">
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+        <el-form-item label="营销类别名" prop="itemclassname">
+          <el-input v-model="ruleForm.itemclassname" size="small" placeholder="请输入营销类别名"></el-input>
+        </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 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>
+          <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":'',
+        "itemclassfullname":'',
+      },
+      rules:{
+        itemclassname: [
+          { required: true, message: '请输入营销类别名', trigger: 'blur' },
+        ],
+        itemclassnum: [
+          { required: true, message: '请输入营销类别编号', trigger: 'blur' },
+        ],
+        itemclassfullname: [
+          { required: true, message: '请输入营销类别全称', trigger: 'blur' },
+        ],
+      }
+    };
+  },
+  props:['type','rowData'],
+  computed:{
+  },
+  watch:{
+    currentData: {
+      handler(val) {
+        this.ruleForm.itemclassnum = val.itemclassnum
+        this.ruleForm.itemclassname = val.itemclassname
+        this.ruleForm.itemclassfullname = val.itemclassfullname
+      }
+    }
+  },
+  methods: {
+    editBtn() {
+      this.dialogVisible=true
+      this.currentData = this.rowData
+    },
+    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":this.type == 'add' ? 0 : this.rowData.itemclassid,     
+                "sa_brandid":this.rowData.sa_brandid,
+                "parentid":this.rowData.itemclassid === undefined ? 0 : this.rowData.itemclassid,
+                "itemclassnum":this.ruleForm.itemclassnum,
+                "itemclassname":this.ruleForm.itemclassname,
+                "itemclassfullname":this.ruleForm.itemclassfullname,
+                "classtype":"营销"
+            }
+          })
+          this.tool.showMessage(res,() => {
+            this.$emit('addSuccess')
+            this.dialogVisible = false
+          })
+        }
+      })
+    }
+  },
+};
+</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>

+ 58 - 0
src/HDrpManagement/saleclass/index.vue

@@ -0,0 +1,58 @@
+<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"/>
+      </template>
+      <template v-slot:edit="scope">
+        <Edit type="edit" @addSuccess="addSuccess" v-if="scope.data.itemclassid" :rowData="scope.data"/>
+      </template>
+      <template v-slot:del="scope">
+        <Del :id="scope.data.itemclassid" @deleteSuccess="deleteSuccess" v-if="scope.data.itemclassid"/>
+      </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>

+ 5 - 3
src/HDrpManagement/unit/components/list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="unit container normal-panel">
-    <el-row>
+    <el-row style="display:flex;justify-content:space-between">
       <el-col :span="11">
         <p class="normal-title normal-margin">计量单位</p>
         <slot name="unitAdd"/>
@@ -13,7 +13,7 @@
           </template>
         </tableLayout>
       </el-col>
-      <el-col :span="11" style="margin-left:16px">
+      <el-col :span="11">
         <p class="normal-title normal-margin">计量单位组</p>
         <slot name="unitGroupAdd"/>
         <tableLayout v-if="unitGroupList" :layout="tablecols2" :data="unitGroupList" :custom="false" height="70vh">
@@ -87,5 +87,7 @@ export default {
 </script>
 
 <style scoped>
-
+a{
+  justify-content: sp;
+}
 </style>

+ 1 - 1
src/HDrpManagement/unit/components/unitAdd.vue

@@ -9,7 +9,7 @@
       :before-close="handleClose">
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
         <el-form-item label="计量单位" prop="unitname">
-          <el-input v-model="ruleForm.unitname" size="small"></el-input>
+          <el-input v-model="ruleForm.unitname" size="small" placeholder="比如:克/千克"></el-input>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">

+ 1 - 1
src/HDrpManagement/unit/components/unitGroupAdd.vue

@@ -9,7 +9,7 @@
       :before-close="handleClose">
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
         <el-form-item label="计量单位组名称" prop="unitgroupname">
-          <el-input v-model="ruleForm.unitgroupname" size="small"></el-input>
+          <el-input v-model="ruleForm.unitgroupname" size="small" placeholder="请输入计量单位组名称"></el-input>
         </el-form-item>
         <el-form-item label="主计量单位" prop="unitid">
           <el-select v-model="ruleForm.unitid" placeholder="请选择">

+ 2 - 0
src/HManagement/department/modules/dep_list.vue

@@ -42,6 +42,8 @@ export default {
       })
       // 数据格式转换成elementui-tree所需的格式
       this.deplist = this.createMenu(res.data)
+      console.log(this.deplist);
+      
       this.$store.dispatch('setDeplistData',this.deplist)
       callback()
     },

+ 1 - 1
src/SManagement/project_target/modules/detailInfo.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="edit">
-    <div class="container normal-panel" style="margin-top:16px">
+    <div class="container normal-panel">
       <p class="normal-title normal-margin">基础信息</p>
       <el-descriptions :column="4">
           <el-descriptions-item label="年度">{{detail.year?detail.year:'未知'}}</el-descriptions-item>

+ 2 - 1
src/SManagement/project_target/modules/editInfo.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="edit">
-    <div class="container normal-panel" style="margin-top:16px">
+    <div class="container normal-panel">
       <p class="normal-title normal-margin">基础信息</p>
       <el-descriptions :column="4">
           <el-descriptions-item label="年度">{{detail.year?detail.year:'未知'}}</el-descriptions-item>
@@ -91,6 +91,7 @@ export default {
       let res = await this.$api.requested({
           "id": 20220906094602,
           "content": {
+              "nocache":true,
               "year": this.$route.query.year,
               "hrid": this.$route.query.id,
               // "sa_salestargetbillid": 2//可不传

+ 2 - 1
src/SManagement/sales_forecast/index.vue

@@ -26,7 +26,7 @@
         </template>
         <template v-slot:opreation="scope">
           <el-button type="text" size="small" @click="addBuill(scope)"
-            v-if="tool.checkAuth($route.name,'create_sales')">创建提报</el-button>
+            v-if="tool.checkAuth($route.name,'create_sales')" :disabled="scope.data.status == '结束'">创建提报</el-button>
         </template>
       </tableLayout>
       <pagination :total="total" :pageSize="params.content.pageSize" :currentPage="params.content.pageNumber"
@@ -159,6 +159,7 @@ export default {
     },
     /* 创建提报 */
     async addBuill (data) {
+      if(data.data.status == '结束') return 
       let res = await this.$api.requested({
         "id": 20220913154403,
         "version": 1,

+ 2 - 2
src/SManagement/sales_forecast/modules/editProduct.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="detail">
-    <div class="container normal-panel" style="margin-top:16px" v-if="$route.query.header == 'panel'">
+    <div class="container normal-panel" v-if="$route.query.header == 'panel'">
       <p class="normal-title normal-margin">模板信息</p>
       <el-descriptions :column="3" v-if="detail">
           <el-descriptions-item label="模板编号">{{detail.billnum?detail.billnum:'未知'}}</el-descriptions-item>
@@ -15,7 +15,7 @@
       </el-descriptions>
     </div>
     <!--提报头部-->
-    <div class="container normal-panel" style="margin-top:16px" v-else>
+    <div class="container normal-panel" v-else>
       <p class="normal-title normal-margin">基础信息</p>
       <el-descriptions :column="3" v-if="detail">
           <el-descriptions-item label="单号">{{detail.billnum?detail.billnum:'未知'}}</el-descriptions-item>

+ 2 - 2
src/SManagement/sales_forecast/modules/editSales.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <!--模板头部-->
-    <div class="container normal-panel" style="margin-top:16px" v-if="$route.query.header == 'panel'">
+    <div class="container normal-panel" v-if="$route.query.header == 'panel'">
       <p class="normal-title normal-margin">模板信息</p>
       <el-descriptions :column="3" v-if="detail">
           <el-descriptions-item label="模板编号">{{detail.billnum?detail.billnum:'未知'}}</el-descriptions-item>
@@ -16,7 +16,7 @@
       </el-descriptions>
     </div>
     <!--提报头部-->
-    <div class="container normal-panel" style="margin-top:16px" v-else>
+    <div class="container normal-panel" v-else>
       <p class="normal-title normal-margin">基础信息</p>
       <el-descriptions :column="3" v-if="detail">
           <el-descriptions-item label="单号">{{detail.billnum?detail.billnum:'未知'}}</el-descriptions-item>

+ 1 - 1
src/SManagement/sales_forecast/modules/productDetail.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="detail">
-    <div class="container normal-panel" style="margin-top:16px">
+    <div class="container normal-panel">
       <p class="normal-title normal-margin">基础信息</p>
       <el-descriptions :column="3" v-if="detail">
           <el-descriptions-item label="单号">{{detail.billnum?detail[0].billnum:'未知'}}</el-descriptions-item>

+ 1 - 1
src/SManagement/sales_forecast/modules/projectDetail.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="detail">
-    <div class="container normal-panel" style="margin-top:16px">
+    <div class="container normal-panel">
       <p class="normal-title normal-margin">基础信息</p>
       <el-descriptions :column="3" v-if="detail">
           <el-descriptions-item label="单号">{{detail.billnum?detail[0].billnum:'未知'}}</el-descriptions-item>

+ 2 - 2
src/components/down_select/index.vue

@@ -17,10 +17,10 @@ export default {
   name: '',
   data() {
     return {
-      result:''
+      result:this.default == true ? this.list[0] ? this.list[0].value : '' : ''
     };
   },
-  props:['title','list'],
+  props:['title','list','default'],
   computed:{
   },
   watch:{

+ 12 - 0
src/router/HDrpManagement.js

@@ -17,6 +17,7 @@ const HDrpManagement = [
       keeproute: true
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/unit/index')
+<<<<<<< HEAD
   },
   {
     path: '/productmag',
@@ -27,6 +28,17 @@ const HDrpManagement = [
       keeproute: true
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/ProductMag/index')
+=======
+  },{
+    path: '/sm_saleclass',
+    name: 'saleclass',
+    meta: {
+      title: '营销类别管理',
+      ast_nav: true,
+      keeproute: true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/saleclass/index')
+>>>>>>> 0377377c1e775e79720beb6795642eaf01041de6
   }
 ]
 export default HDrpManagement

+ 4 - 0
yos/index.html

@@ -1,5 +1,9 @@
 <<<<<<< HEAD
+<<<<<<< HEAD
 <!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"><link rel="icon" href="favicon.ico"><title>yos_manage</title><script defer="defer" type="module" src="js/chunk-vendors.8e4fd6d5.js"></script><script defer="defer" type="module" src="js/app.786cc5e8.js"></script><link href="css/app.09f1a246.css" rel="stylesheet"><script defer="defer" src="js/chunk-vendors-legacy.d9087565.js" nomodule></script><script defer="defer" src="js/app-legacy.a690b3f7.js" nomodule></script></head><body><noscript><strong>We're sorry but yos_manage doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
 =======
 <!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"><link rel="icon" href="favicon.ico"><title>yos_manage</title><script defer="defer" type="module" src="js/chunk-vendors.8e4fd6d5.js"></script><script defer="defer" type="module" src="js/app.a721bc7e.js"></script><link href="css/app.1831ed6a.css" rel="stylesheet"><script defer="defer" src="js/chunk-vendors-legacy.d9087565.js" nomodule></script><script defer="defer" src="js/app-legacy.9a0c4174.js" nomodule></script></head><body><noscript><strong>We're sorry but yos_manage doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
 >>>>>>> 826382b084a472a552e433bf7e55c86e4b05dca1
+=======
+<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"><link rel="icon" href="favicon.ico"><title>yos_manage</title><script defer="defer" type="module" src="js/chunk-vendors.8e4fd6d5.js"></script><script defer="defer" type="module" src="js/app.8ebba0b5.js"></script><link href="css/app.1831ed6a.css" rel="stylesheet"><script defer="defer" src="js/chunk-vendors-legacy.d9087565.js" nomodule></script><script defer="defer" src="js/app-legacy.6b753e68.js" nomodule></script></head><body><noscript><strong>We're sorry but yos_manage doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
+>>>>>>> 0377377c1e775e79720beb6795642eaf01041de6