浏览代码

商品档案

zhangqiOMG 2 年之前
父节点
当前提交
0971d6ed1e

+ 0 - 2
src/HDrpManagement/BrandManage/modules/edit.vue

@@ -4,7 +4,6 @@
     <el-dialog
         :visible.sync="drawer"
         width="450px"
-
     >
       <div>
         <el-row :gutter="50">
@@ -22,7 +21,6 @@
                 <small style="display:block;margin-top:20px" class="info">注:建议上传图片大小1024x1024,大小不超过2M,格式为JPG/PNG</small>
               </el-form-item>
             </el-col>
-
           </el-form>
         </el-row>
       </div>

+ 55 - 7
src/HDrpManagement/ProductMag/index.vue

@@ -1,25 +1,73 @@
 <template>
   <div>
-    <selectClass>
-      <add slot="add"></add>
-    </selectClass>
-    <list></list>
+    <list ref="list" @selectData="selectData">
+      <BtnGroup
+        :rows="selectRow" 
+        slot="operation"
+        @checkProducts="checkProducts" 
+        @cancel="cancel" 
+        @onSuccess="onSuccess">
+      </BtnGroup>
+      <add slot="add" @onSuccess="onSuccess"></add>
+      <template v-slot:setimage="scope">
+        <SetImage :data="scope.data" @uploadSuccess="onSuccess"></SetImage>
+      </template>
+      <template v-slot:onsale="scope">
+        <onsale :data="scope.data" @onSuccess="onSuccess"></onsale>
+      </template>
+      <template v-slot:edit="scope">
+        <edit :data="scope.data"></edit>
+      </template>
+      <template v-slot:del="scope">
+        <ondel :data="scope.data" @onSuccess="onSuccess"></ondel>
+      </template>
+      
+    </list>
   </div>
 </template>
 
 <script>
-import selectClass from './modules/Select'
 import add from './modules/add'
+import edit from './modules/edit'
+import ondel from './modules/del'
+import onsale from './modules/onsale'
+import BtnGroup from './modules/BtnGroup'
+import SetImage from './modules/SetImage'
 
 import list from './modules/list'
 export default {
   components:{
-    selectClass,
     list,
-    add
+    add,
+    edit,
+    ondel,
+    onsale,
+    BtnGroup,
+    SetImage
+  },
+  data () {
+    return {
+      selectRow:[]
+    }
+  },
+  methods:{
+    onSuccess () {
+      this.$refs['list'].listData()
+    },
+    checkProducts (type) {
+       this.$refs['list'].selection(type)
+    },
+    selectData (data) {
+      this.selectRow = data
+    },
+    cancel () {
+      this.$refs['list'].clearSelection()
+    }
   }
 }
 
 </script>
 <style>
+</style>
+<style scoped>
 </style>

+ 54 - 0
src/HDrpManagement/ProductMag/modules/BtnGroup.vue

@@ -0,0 +1,54 @@
+<template>
+  <div>
+    <el-button-group>
+      <el-button type="primary" size="small" @click="checkProducts('check')">审 核</el-button>
+      <el-button type="primary" size="small" @click="checkProducts('uncheck')">反 审</el-button>
+      <!-- <el-button type="primary" size="small">批量删除</el-button> -->
+    </el-button-group>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['rows'],
+  data () {
+    return {}
+  },
+  methods:{
+    checkProducts (type) {
+      this.$emit('checkProducts',type)
+      this.$confirm('确定执行当前页的批量操作吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        if(this.rows.length === 0) return this.$message({
+          message:'没有需要批量处理的数据',
+          type:'warning'
+        })
+        this.onSubmit(type)
+      }).catch(() => {
+        this.$emit('cancel')    
+      });
+    },
+
+    async onSubmit (type) {
+      let arr = this.rows.map(e=>{return e.itemid})
+      console.log(arr)
+      const res = await this.$api.requested({
+        "id": 20220923153902,
+        "content": {
+          "itemids": arr,
+          "status": type === 'check'?1:0
+        },
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit('onSuccess')
+      })
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 4 - 8
src/HDrpManagement/ProductMag/modules/Select.vue

@@ -1,13 +1,9 @@
 <template>
-  <div class="container border-bottom">
-    <div class="flex-align-center flex-between normal-margin">
-      <ul class="flex-align-center">
+  <div>
+    <div>
+      <!-- <ul class="flex-align-center">
         <li :class="brand_act === item.sa_brandid?'act':''" class="brand-item" v-for="item in brands" :key="item.sa_brandid" @click="clickBrand(item.sa_brandid)">{{item.brandname}}</li>
-      </ul>
-      <div class="flex-align-center">
-        <el-input size="small" v-model="value" placeholder="产品名称,编号" clearable></el-input>&nbsp;
-        <slot name="add"></slot>
-      </div>
+      </ul> -->
     </div>
     <div>
 

+ 43 - 0
src/HDrpManagement/ProductMag/modules/SetImage.vue

@@ -0,0 +1,43 @@
+<template>
+  <div class="inline-16">
+    <el-button type="primary" size="small" @click="dialogImageVisible = true">设置产品图</el-button>
+    <el-dialog title="设置产品图" :visible.sync="dialogImageVisible">
+      <div class="flex-align-center">
+        <previewImage style="margin-right:10px;margin-top:0" v-for="item in data.attinfos" :key="item.index" :image="item" :deletebtn="true" @onSuccess="clearFile(item)"></previewImage>
+        <uploadFile :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'plm_item',ownerid:data.itemid,usetype:'default'}" @onSuccess="uploadSuccess"></uploadFile>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import previewImage from '@/components/previewImage/index'
+import uploadFile from '@/components/upload/hw_obs_upload'
+
+export default {
+  props:['data'],
+  components:{
+    previewImage,
+    uploadFile
+  },
+  data () {
+    return {
+      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      dialogImageVisible:false
+    }
+  },
+  methods:{
+    uploadSuccess () {
+      this.$emit('uploadSuccess')
+    },
+    clearFile (item) {
+      this.data.attinfos = this.data.attinfos.filter(e=>{
+        return e.attachmentid !== item.attachmentid
+      })
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 154 - 12
src/HDrpManagement/ProductMag/modules/add.vue

@@ -1,31 +1,91 @@
 <template>
   <div>
-    <el-button type="primary" size="small" @click="dialogTableVisible=true">新增产品</el-button>
-    <el-dialog title="新增产品" :visible.sync="dialogTableVisible">
-      <el-row :gutter="20">
-        <el-form label-position="left" inline label-width="80px" :model="form" size="small">
+    <el-button type="primary" size="small" @click="dialogFormVisible=true">新增产品</el-button>
+    <el-dialog title="新增产品" :visible.sync="dialogFormVisible">
+      <el-row :gutter="40">
+        <el-form label-position="left" label-width="80px" :model="form" size="small">
           <el-col :span="12">
             <el-form-item label="产品编号">
-              <el-input v-model="form.itemno"></el-input>
+              <el-input v-model="form.itemno" placeholder="输入产品编号"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="产品名称">
-              <el-input v-model="form.itemname"></el-input>
+              <el-input v-model="form.itemname"  placeholder="输入产品名称"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="型号">
-              <el-input v-model="form.model"></el-input>
+              <el-input v-model="form.model" placeholder="输入产品型号"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="规格">
-              <el-input v-model="form.spec"></el-input>
+              <el-input v-model="form.spec" placeholder="输入产品规格"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="辅助单位">
+              <el-checkbox :true-label="1" :false-label="0" v-model="form.isauxunit" @change="isauxunitChange">是否需要辅助单位</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="主单位">
+              <el-select style="width:100%" v-model="form.unitid" placeholder="请选择" @change="unitChange">
+                <el-option
+                  v-for="item in unitData"
+                  :key="item.unitid"
+                  :label="item.unitname"
+                  :value="item.unitid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="辅助单位">
+              <el-select style="width:100%" v-model="form.unitgroupid" :disabled="form.isauxunit === 0" placeholder="请选择">
+                <el-option
+                  v-for="item in unitGroupData"
+                  :key="item.unitgroupid"
+                  :label="item.unitgroupname"
+                  :value="item.unitgroupid">
+                  <p style="float: left">{{ item.unitgroupname }}</p>
+                  <p style="float:right;color: #8492a6; font-size: 13px">{{ item.conversionrate }}{{item.unitname}}/{{item.auxunitname}},换算率:{{'1:'+ item.conversionrate}}</p>
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="9">
+            <el-form-item label="换算率">
+              <el-input v-model="form.itemname" readonly></el-input>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="起订量">
+              <el-input placeholder="请输入内容" v-model="form.orderminqty" class="input-with-select">
+                <el-select style="width:100px" v-model="form.orderminqty_auxunit" slot="prepend" placeholder="请选择">
+                  <el-option label="主单位" :value="0"></el-option>
+                  <el-option :disabled="form.isauxunit === 0" label="辅助单位" :value="1"></el-option>
+                </el-select>
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="增量">
+              <el-input placeholder="请输入内容" v-model="form.orderaddqty" class="input-with-select">
+                <el-select style="width:100px" v-model="form.orderaddqty_auxunit" slot="prepend" placeholder="请选择">
+                  <el-option label="主单位" :value="0"></el-option>
+                  <el-option :disabled="form.isauxunit === 0" label="辅助单位" :value="1"></el-option>
+                </el-select>
+              </el-input>
             </el-form-item>
           </el-col>
         </el-form>
       </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
     </el-dialog>
   </div>
 </template>
@@ -34,13 +94,95 @@
 export default {
   data () {
     return {
-      dialogTableVisible:false,
+      dialogFormVisible:false,
       form:{
-        itemid:0,
-        itemno:'',
-        itemname:''
+        "itemid":0,
+        "isauxunit":0,
+        "unitid":'',
+        "unitgroupid":'',
+        "itemno":'',
+        "itemname":'',
+        "model": "",
+        "spec": "",
+        "orderminqty": '', //订单起订量
+        "orderaddqty": '', //订单增量
+        "orderminqty_auxunit": 0, //订单起订量控制单位(0:主单位;1:辅助单位)
+        "orderaddqty_auxunit": 0 //订单增量控制单位(0:主单位;1:辅助单位)
+      },
+      unitGroupData:[],
+      unitData:[]
+    }
+  },
+  methods:{
+    async unitlist () {
+      const res = await this.$api.requested({
+        "id": "20220922084803",
+        "version":1,
+        "nocache": true,
+        "content": {
+          "pageSize":1000,
+          "where":{
+            "condition":""
+          }
+        }
+      })
+      this.unitData = res.data
+    },
+     async unitGrouplist () {
+       const res = await this.$api.requested({
+        "id": "20220922084503",
+        "version":1,
+        "nocache": true,
+        "content": {
+          "pageSize":1000,
+          "where":{
+            "condition":"",
+            "unitid":this.form.unitid
+          }
+        }
+      })
+      this.unitGroupData = res.data
+    },
+    async onSubmit () {
+      const res = await this.$api.requested({
+        "id": 20220923141502,
+        "content": this.form
+      })
+      this.tool.showMessage(res,()=>{
+        this.dialogFormVisible = false
+        this.$emit('onSuccess')
+        this.refresh()
+      })
+    },
+    unitChange () {
+       this.unitGrouplist()
+    },
+    isauxunitChange (val) {
+      if (val === 0) {
+        this.form.orderminqty_auxunit = this.form.orderaddqty_auxunit = 0
+        this.form.unitgroupid = ''
+      }
+    },
+    refresh () {
+      this.form = {
+        "itemid":0,
+        "isauxunit":0,
+        "unitid":'',
+        "unitgroupid":'',
+        "itemno":'',
+        "itemname":'',
+        "model": "",
+        "spec": "",
+        "orderminqty": '', //订单起订量
+        "orderaddqty": '', //订单增量
+        "orderminqty_auxunit": 0, //订单起订量控制单位(0:主单位;1:辅助单位)
+        "orderaddqty_auxunit": 0 //订单增量控制单位(0:主单位;1:辅助单位)
       }
     }
+  },
+  mounted () {
+    this.unitlist()
+    this.unitGrouplist()
   }
 }
 

+ 32 - 0
src/HDrpManagement/ProductMag/modules/del.vue

@@ -0,0 +1,32 @@
+<template>
+  <div style="display:inline">
+    <el-popconfirm
+      title="确定删除当前产品吗?"
+      @confirm="deleteRow()">
+      <el-button slot="reference" size="small" type="danger"  :disabled="data.status==='审核'">删 除</el-button>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  methods:{
+    deleteRow () {
+      this.$api.requested({
+        "id": 20220923152202,
+        "content": {
+            "itemids": [
+              this.data.itemid
+            ]
+        },
+      }).then(res=>{
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+        })
+      })
+    },
+  }
+}
+
+</script>

+ 188 - 0
src/HDrpManagement/ProductMag/modules/edit.vue

@@ -0,0 +1,188 @@
+<template>
+  <div class="inline-16">
+    <el-button type="primary" :disabled="data.status==='审核'" size="small" @click="onShow">编 辑</el-button>
+    <el-dialog title="新增产品" :visible.sync="dialogFormVisible">
+      <el-row :gutter="40">
+        <el-form label-position="left" label-width="80px" :model="form" size="small">
+          <el-col :span="12">
+            <el-form-item label="产品编号">
+              <el-input v-model="form.itemno" placeholder="输入产品编号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="产品名称">
+              <el-input v-model="form.itemname"  placeholder="输入产品名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="型号">
+              <el-input v-model="form.model" placeholder="输入产品型号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="规格">
+              <el-input v-model="form.spec" placeholder="输入产品规格"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="辅助单位">
+              <el-checkbox :true-label="1" :false-label="0" v-model="form.isauxunit" @change="isauxunitChange">是否需要辅助单位</el-checkbox>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="主单位">
+              <el-select style="width:100%" v-model="form.unitid" placeholder="请选择" @change="unitChange">
+                <el-option
+                  v-for="item in unitData"
+                  :key="item.unitid"
+                  :label="item.unitname"
+                  :value="item.unitid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="辅助单位">
+              <el-select style="width:100%" v-model="form.unitgroupid" :disabled="form.isauxunit === 0" placeholder="请选择">
+                <el-option
+                  v-for="item in unitGroupData"
+                  :key="item.unitgroupid"
+                  :label="item.unitgroupname"
+                  :value="item.unitgroupid">
+                  <p style="float: left">{{ item.unitgroupname }}</p>
+                  <p style="float:right;color: #8492a6; font-size: 13px">{{ item.conversionrate }}{{item.unitname}}/{{item.auxunitname}},换算率:{{'1:'+ item.conversionrate}}</p>
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="9">
+            <el-form-item label="换算率">
+              <el-input v-model="form.itemname" readonly></el-input>
+            </el-form-item>
+          </el-col> -->
+          <el-col :span="12">
+            <el-form-item label="起订量">
+              <el-input placeholder="请输入内容" v-model="form.orderminqty" class="input-with-select">
+                <el-select style="width:100px" v-model="form.orderminqty_auxunit" slot="prepend" placeholder="请选择">
+                  <el-option label="主单位" :value="0"></el-option>
+                  <el-option :disabled="form.isauxunit === 0" label="辅助单位" :value="1"></el-option>
+                </el-select>
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="增量">
+              <el-input placeholder="请输入内容" v-model="form.orderaddqty" class="input-with-select">
+                <el-select style="width:100px" v-model="form.orderaddqty_auxunit" slot="prepend" placeholder="请选择">
+                  <el-option label="主单位" :value="0"></el-option>
+                  <el-option :disabled="form.isauxunit === 0" label="辅助单位" :value="1"></el-option>
+                </el-select>
+              </el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  data () {
+    return {
+      dialogFormVisible:false,
+      form:{
+        "itemid":0,
+        "isauxunit":0,
+        "unitid":'',
+        "unitgroupid":'',
+        "itemno":'',
+        "itemname":'',
+        "model": "",
+        "spec": "",
+        "orderminqty": '', //订单起订量
+        "orderaddqty": '', //订单增量
+        "orderminqty_auxunit": 0, //订单起订量控制单位(0:主单位;1:辅助单位)
+        "orderaddqty_auxunit": 0 //订单增量控制单位(0:主单位;1:辅助单位)
+      },
+      unitGroupData:[],
+      unitData:[]
+    }
+  },
+  methods:{
+    onShow () {
+      this.dialogFormVisible = true
+      this.queryMain()
+      this.unitlist()
+      this.unitGrouplist()
+    },
+    async queryMain() {
+      const res = await this.$api.requested({
+        "id": 20220923155302,
+        "content": {
+          "itemid": this.data.itemid
+        },
+      })
+      this.form = Object.assign({},this.form,res.data)
+      console.log(this.form)
+    },
+    async unitlist () {
+      const res = await this.$api.requested({
+        "id": "20220922084803",
+        "version":1,
+        "nocache": true,
+        "content": {
+          "pageSize":1000,
+          "where":{
+            "condition":""
+          }
+        }
+      })
+      this.unitData = res.data
+    },
+     async unitGrouplist () {
+       const res = await this.$api.requested({
+        "id": "20220922084503",
+        "version":1,
+        "nocache": true,
+        "content": {
+          "pageSize":1000,
+          "where":{
+            "condition":"",
+            "unitid":this.form.unitid
+          }
+        }
+      })
+      this.unitGroupData = res.data
+    },
+    async onSubmit () {
+      const res = await this.$api.requested({
+        "id": 20220923141502,
+        "content": this.form
+      })
+      this.tool.showMessage(res,()=>{
+        this.dialogFormVisible = false
+      })
+    },
+    unitChange () {
+       this.unitGrouplist()
+    },
+    isauxunitChange (val) {
+      if (val === 0) {
+        this.form.orderminqty_auxunit = this.form.orderaddqty_auxunit = 0
+        this.form.unitgroupid = ''
+      }
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+</style>

+ 106 - 57
src/HDrpManagement/ProductMag/modules/list.vue

@@ -1,11 +1,20 @@
 <template>
 <div class="container"> 
+  <div class="flex-align-center flex-between normal-margin">
+    <slot name="operation"></slot>
+    <div class="flex-align-center">
+      <el-input size="small" v-model="params.content.where.condition" placeholder="产品名称,编号" @keyup.enter.native="listData(params.content.pageNumber = 1)" @clear="listData(params.content.pageNumber = 1)" clearable></el-input>&nbsp;
+      <slot name="add"></slot>
+    </div>
+  </div>
   <div class="produtMag-panel">
     <el-table
+      ref="multipleTable"
       :data="tableData"
       style="width: 100%"
       :header-cell-style="{height:'50px',color:'#768093',fontWeight:'100'}"
-      :cell-style="{height:'50px',color:'#768093',fontWeight:'200'}">
+      :cell-style="{height:'50px',color:'#768093',fontWeight:'200'}"
+      @selection-change="selectionChange">
       <el-table-column
         type="selection"
         width="55">
@@ -16,14 +25,18 @@
         label="上架状态"
         width="80">
         <template slot-scope="scope">
-          <div style="margin:10px 0">
-            <el-switch
-              :disabled="scope.row.status==='审核'"
-              v-model="scope.row.isonsale"
-              active-color="#3874f6"
-              inactive-color="#999">
-            </el-switch>
+          <slot name="onsale" :data="scope.row"></slot>
+        </template>
+      </el-table-column>
+      <el-table-column
+        align="center"
+        label="产品图"
+        width="80">
+        <template slot-scope="scope">
+          <div v-if="scope.row.attinfos[0]">
+            <previewImage class="image" :image="scope.row.attinfos[0]" :list="scope.row.attinfos" :deletebtn="false"></previewImage>
           </div>
+          <uploadFile  v-else :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="smallimage" :bindData="{ownertable:'plm_item',ownerid:scope.row.itemid,usetype:'default'}" @onSuccess="listData"></uploadFile>
         </template>
       </el-table-column>
       <el-table-column
@@ -55,7 +68,7 @@
         label="计量单位"
         width="90">
         <template slot-scope="scope">
-          <el-tag size="mini" type="info" effect="plain">{{scope.row.unitid}}</el-tag>
+          <el-tag size="mini" type="info" effect="plain">{{scope.row.unitname}}</el-tag>
         </template>
       </el-table-column>
       <el-table-column
@@ -66,10 +79,11 @@
           <span :style="scope.row.status === '新建'?{color:'#52C41A'}:{color:'red'}">{{scope.row.status}}</span>
         </template>
       </el-table-column>
-      <el-table-column width="150">
+      <el-table-column width="280">
         <template slot-scope="scope">
-          <el-button size="mini" type="primary"  :disabled="scope.row.status==='审核'">编 辑</el-button>
-          <el-button size="mini" type="danger"  :disabled="scope.row.status==='审核'">删 除</el-button>
+          <slot name="setimage" :data="scope.row"></slot>
+          <slot name="edit" :data="scope.row"></slot>
+          <slot name="del" :data="scope.row"></slot>
         </template>
       </el-table-column>
     </el-table>
@@ -77,10 +91,12 @@
       <el-pagination
         background
         small
-        :current-page="1"
-        :page-size="10"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="currentPage"
+        :page-size="params.content.pageSize"
         layout="total, prev, pager, next, jumper"
-        :total="100">
+        :total="total">
       </el-pagination>
     </div>
   </div>
@@ -88,52 +104,82 @@
 </template>
 
 <script>
+import uploadFile from '@/components/upload/hw_obs_upload'
+import previewImage from '@/components/previewImage/index'
+
 export default {
   data () {
     return {
-      value:0,
-      tableData: [{
-        isonsale: false,
-        itemname: '铜本色等径直通',
-        itemno: 'BM8270 0540000',
-        model:'316L德标卡压等径直通',
-        spec:'18mm',
-        orderminqty:100,
-        orderaddqty:10,
-        unitid:'个',
-        status:'新建'
-      }, {
-        isonsale: false,
-        itemname: '铜本色等径直通',
-        itemno: 'BM8270 0540000',
-        model:'316L德标卡压等径直通',
-        spec:'18mm',
-        orderminqty:100,
-        orderaddqty:10,
-        unitid:'个',
-        status:'新建'
-      }, {
-        isonsale: true,
-        itemname: '铜本色等径直通',
-        itemno: 'BM8270 0540000',
-        model:'316L德标卡压等径直通',
-        spec:'18mm',
-        orderminqty:100,
-        orderaddqty:10,
-        unitid:'个',
-        status:'新建'
-      }, {
-        isonsale: false,
-        itemname: '铜本色等径直通',
-        itemno: 'BM8270 0540000',
-        model:'316L德标卡压等径直通',
-        spec:'18mm',
-        orderminqty:100,
-        orderaddqty:10,
-        unitid:'个',
-        status:'审核'
-      }]
+      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      params:{
+        "id": 20220923140602,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": ''
+          }
+        }
+      },
+      tableSelectData:[],
+      tableData: [],
+      total:0,
+      currentPage:0
+    }
+  },
+  components:{
+    uploadFile,
+    previewImage
+  },
+  methods:{
+    async listData () {
+      const res = await this.$api.requested(this.params)
+      this.tableData = res.data
+      this.total = res.total
+      this.currentPage = res.pageNumber
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.listData()
+    },
+    selectionChange (val) {
+      this.tableSelectData = val
+    },
+    // 根据状态批量选择数据
+    selection (type) {
+      let arr = []
+      let soureData = []
+
+      // 判断是否是主动勾选数据,设置数据源
+      this.tableSelectData.length > 0 ? soureData = this.tableSelectData:soureData = this.tableData
+
+      if (type === 'check') {
+        arr = soureData.filter(e=>{
+          return e.status === '新建'
+        })
+      } else {
+        arr = soureData.filter(e=>{
+          return e.status === '审核'
+        })
+      }
+      // 若为主动勾选数据则不执行循环
+      this.tableSelectData.length > 0 ?'':arr.forEach(row => {
+        this.$refs.multipleTable.toggleRowSelection(row);
+      });
+      this.$emit('selectData',arr)
+    },
+    clearSelection () {
+      this.$refs.multipleTable.clearSelection();
     }
+  },
+  mounted () {
+    this.listData()
   }
 }
 
@@ -151,4 +197,7 @@ export default {
   /* box-shadow: 0 5px 5px rgb(0 0 0 / 10%);
   transform: translate3d(0,-2px,0); */
 }
+.image {
+  width:40px;height:40px;margin:0px auto;
+}
 </style>

+ 41 - 0
src/HDrpManagement/ProductMag/modules/onsale.vue

@@ -0,0 +1,41 @@
+<template>
+  <div style="margin:10px 0">
+    <el-switch
+      :disabled="data.status==='新建'"
+      v-model="data.isonsale"
+      :active-value="1"
+      :inactive-value="0"
+      active-color="#3874f6"
+      inactive-color="#999"
+      @change="setOnsale">
+    </el-switch>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  data () {
+    return {}
+  },
+  methods:{
+    async setOnsale (val) {
+      const res = await this.$api.requested({
+        "id": 20220923154802,
+        "content": {
+          "itemids": [
+           this.data.itemid
+          ],
+          "isonsale":val
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.$emit('onSuccess')
+      })
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 7 - 2
src/HManagement/addressList/mycontact/index.vue

@@ -51,8 +51,13 @@ export default {
       })
     },
     onEditSuccess (form) {
-      console.log(form)
-      this.activeContactsData = Object.assign({},this.activeGroupData,form)
+      this.activeContactsData = Object.assign({},this.activeContactsData,form)
+      this.activeGroupData.phonebook = this.activeGroupData.phonebook.map(e=>{
+        if (e.rowindex === form.rowindex) {
+          e = Object.assign({},e,form)
+        }
+        return e
+      })
     }, 
     setGroupData (val) {
       this.group = val

+ 1 - 1
src/HManagement/addressList/mycontact/modules/group.vue

@@ -56,7 +56,7 @@ export default {
         }
       })
       res.data.forEach(e=>{e.phonebook.forEach(element => {
-        element.tag = JSON.parse(element.tag)
+        element.tag = element.tag1
       });})
       this.sysGroup = res.data.filter(e=>{
         if(e.sys_phonebookgroupid === 0)

+ 5 - 5
src/HManagement/clueManage/clue_import/modules/importClue.vue

@@ -30,11 +30,11 @@ export default {
             "sat_campaignid":sat_campaignid
         }
       })
-      if (res.msg !== '成功') { 
-        this.errorurl = res.msg
-      } else {
-        this.errorurl = null
-      }
+      // if (res.msg !== '成功') { 
+      //   this.errorurl = res.msg
+      // } else {
+      //   this.errorurl = null
+      // }
       this.tool.showMessage(res,()=>{
         this.$emit('onSuccess')
       })

+ 18 - 2
src/HManagement/clueManage/m_activity/modules/add.vue

@@ -27,7 +27,7 @@
             style="width:100%">
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="结束日期">
+        <el-form-item label="结束日期" prop="enddate">
           <el-date-picker
             v-model="form.enddate"
             type="date"
@@ -69,10 +69,25 @@ export default {
         begdate: [
           { required: true, message: '请选择开始日期', trigger: 'change' }
         ],
+        enddate: [
+          { validator:this.validateEndDate, trigger: 'change' }
+        ],
       }
     }
   },
   methods:{
+    validateEndDate(rule, value, callback){
+      let start = (new Date(this.form.begdate)).getTime()
+      let end = (new Date(this.form.enddate)).getTime()
+      if (value === '' || !value) {
+        this.form.enddate = ''
+        callback();
+      } else if (end < start) {
+         callback(new Error('结束日期不能小于开始日期'))
+      } else {
+        callback();
+      }
+    },
     add () {
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
@@ -86,7 +101,8 @@ export default {
           this.$emit('onSuccess')
         })
       });
-    }
+    },
+    
   }
 }
 

+ 18 - 4
src/HManagement/clueManage/m_activity/modules/edit.vue

@@ -27,7 +27,7 @@
             style="width:100%">
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="结束日期">
+        <el-form-item label="结束日期" prop="enddate">
           <el-date-picker
             v-model="form.enddate"
             type="date"
@@ -39,7 +39,7 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button size="small" style="width:120px" @click="dialogFormVisible = false">取 消</el-button>
-        <el-button size="small" style="width:120px" type="primary" @click="add()">确 定</el-button>
+        <el-button size="small" style="width:120px" type="primary" @click="submit()">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -70,12 +70,26 @@ export default {
         begdate: [
           { required: true, message: '请选择开始日期', trigger: 'change' }
         ],
+        enddate: [
+          { validator:this.validateEndDate, required: false, trigger: 'change' }
+        ],
       }
     }
   },
   methods:{
+    validateEndDate(rule, value, callback){
+      let start = (new Date(this.form.begdate)).getTime()
+      let end = (new Date(this.form.enddate)).getTime()
+      if (value === '' || !value) {
+        this.form.enddate = ''
+        callback();
+      } else if (end < start) {
+         callback(new Error('结束日期不能小于开始日期'))
+      } else {
+        callback();
+      }
+    },
     onShow () {
-      console.log(this.data)
       this.form = Object.assign({},this.form,this.data)
     },
     restForm () {
@@ -89,7 +103,7 @@ export default {
         "enddate": ""
       }
     },
-    add () {
+    submit () {
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
         const res = await this.$api.requested({

+ 8 - 2
src/components/previewImage/index.vue

@@ -11,7 +11,7 @@
 
 <script>
 export default {
-  props:['image','deletebtn'],
+  props:['image','deletebtn','list'],
   data () {
     return {
       srcList:[]
@@ -34,7 +34,13 @@ export default {
       deep: true,
       immediate: true,
       handler(newValue, oldValue) {
-        this.srcList.push(this.image.url)
+        if (this.list) {
+          this.srcList = this.list.map(e=>{
+            return e.url
+          })
+        } else {
+          this.srcList.push(this.image.url)
+        }
       },
     }
   }

+ 19 - 1
src/components/upload/hw_obs_upload.vue

@@ -1,7 +1,11 @@
 <template>
   <div>
+    <!-- 缩略图类型 -->
+    <div v-if="btntype === 'smallimage'" @click="dialogUploadVisible = true" class="small-image-upload-btn">
+      <i class="el-icon-plus"></i>
+    </div>
     <!-- 图片类型 -->
-    <div v-if="btntype === 'image'" @click="dialogUploadVisible = true" class="image-upload-btn">
+    <div v-else-if="btntype === 'image'" @click="dialogUploadVisible = true" class="image-upload-btn">
       <i class="el-icon-plus"></i>
     </div>
     <!-- 宽图类型 -->
@@ -194,6 +198,20 @@ export default {
   font-size: 4rem;
   cursor: pointer;
 }
+.small-image-upload-btn{
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+  width: 40px;
+  height: 40px;
+  border-radius: 4px 4px 4px 4px;
+  opacity: 1;
+  border: 1px solid #CCCCCC;
+  color: #CCCCCC;
+  font-size: 2rem;
+  cursor: pointer;
+  margin:0 auto;
+}
 .limage-upload-btn{
   width: 384px !important;
 }

+ 1 - 1
src/style/style.css

@@ -107,7 +107,7 @@ ul{
   background: #FFFFFF;
   border-radius: 4px 4px 4px 4px;
   opacity: 1;
-  border: 1px solid #CCCCCC;
+  border: 1px solid rgb(0 0 0 / 5%);
   color: #CCCCCC;
   font-size: 1.5rem;
   cursor: pointer;