Browse Source

Merge branch 'mergeBranch' into xiaoqin

codeMan 3 years ago
parent
commit
51b3d098ed
30 changed files with 712 additions and 95 deletions
  1. 1 1
      src/HDrpManagement/BrandManage/index.vue
  2. 8 39
      src/HDrpManagement/BrandManage/modules/add.vue
  3. 1 1
      src/HDrpManagement/BrandManage/modules/brand_del.vue
  4. 10 25
      src/HDrpManagement/BrandManage/modules/edit.vue
  5. 4 1
      src/HDrpManagement/BrandManage/modules/list.vue
  6. 25 0
      src/HDrpManagement/ProductGroupMag/index.vue
  7. 12 0
      src/HDrpManagement/ProductGroupMag/modules/add.vue
  8. 0 0
      src/HDrpManagement/ProductGroupMag/modules/details.vue
  9. 12 0
      src/HDrpManagement/ProductGroupMag/modules/list.vue
  10. 25 0
      src/HDrpManagement/ProductMag/index.vue
  11. 78 0
      src/HDrpManagement/ProductMag/modules/Select.vue
  12. 49 0
      src/HDrpManagement/ProductMag/modules/add.vue
  13. 154 0
      src/HDrpManagement/ProductMag/modules/list.vue
  14. 3 1
      src/HManagement/clueManage/m_activity/modules/details.vue
  15. 2 2
      src/HManagement/marketing/agent/list.vue
  16. 3 3
      src/HManagement/marketing/saler/list.vue
  17. 1 1
      src/HManagement/salesForecastTemplate/index.vue
  18. 18 0
      src/HManagement/salesForecastTemplate/modules/add.vue
  19. 5 4
      src/HManagement/salesForecastTemplate/modules/forecastList.vue
  20. 2 2
      src/HManagement/salesForecastTemplate/modules/templateList.vue
  21. 21 0
      src/SDrpManagement/Products/index.vue
  22. 67 0
      src/SDrpManagement/Products/modules/ProductDetails.vue
  23. 56 0
      src/SDrpManagement/Products/modules/Select.vue
  24. 87 0
      src/SDrpManagement/Products/modules/list.vue
  25. 12 0
      src/SDrpManagement/commdiityGroup/index.vue
  26. 5 2
      src/components/upload/hw_obs_upload.vue
  27. 29 9
      src/router/HDrpManagement.js
  28. 19 1
      src/router/SDrpManagement.js
  29. 3 2
      src/style/style.css
  30. 0 1
      yos/index.html

+ 1 - 1
src/HDrpManagement/BrandManage/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="container normal-panel normal-margin">
-      <add></add>
+      <add @onSuccess="onSuccess"></add>
     </div>
     <div class="container normal-panel normal-margin">
       <list ref="list">

+ 8 - 39
src/HDrpManagement/BrandManage/modules/add.vue

@@ -8,18 +8,12 @@
         >
       <div>
         <el-row :gutter="50">
-          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="left">
+          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="left" label-width="80px">
             <el-col :span="20">
               <el-form-item prop="brandName" label="品牌名称">
                 <el-input v-model="form.brandName" placeholder="输入品牌名称"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
-              <el-form-item  label="LOGE">
-                <uploadFile style="margin-top:10px" :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'sa_brand',ownerid:'',usetype:'default'}" @onSuccess="uploadSuccess"></uploadFile>
-              </el-form-item>
-            </el-col>
-
           </el-form>
         </el-row>
       </div>
@@ -32,13 +26,12 @@
 </template>
 
 <script>
-import uploadFile from '../../../components/upload/hw_obs_upload.vue'
-import previewImage from '@/components/previewImage/index.vue'
 export default {
   name: "add",
   data(){
     return {
       drawer:false,
+      url:null,
       rules:{
         brandName: [
           { required: true, message: '品牌名称不可为空', trigger: 'blur' },
@@ -47,19 +40,19 @@ export default {
       form:{
         brandName:''
       },
-      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
-      attachmentids:[],
-      ownerid:''
     }
   },
   components:{
-    uploadFile,
-    previewImage
   },
   methods:{
     onShow (){
       this.drawer = true
     },
+    onClose () {
+      this.form = {
+         brandName:''
+      }
+    },
     onSubmit () {
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
@@ -72,36 +65,12 @@ export default {
           }
         })
         this.tool.showMessage(res, () => {
-          console.log(res)
           this.ownerid = res.data
           this.drawer = false
           this.$emit('onSuccess')
-
-          this.bindMedia()
         })
       })
-    },
-    uploadSuccess(res){
-      console.log(res)
-      this.attachmentids = res.data.attachmentids
-    },
-    async bindMedia(){
-      console.log(this.attachmentids)
-      const res = await this.$api.requested({
-        "classname": "system.attachment.Attachment",
-        "method": "createFileLink",
-        "content": {
-          "ownertable": "sa_brand",
-          "ownerid": this.ownerid,
-          "usetype": "default",
-          "attachmentids": this.attachmentids
-        }
-      })
-    },
-    onClose () {
-      this.$refs['form'].resetFields()
-    },
-    clearCover () {}
+    }
   }
 }
 </script>

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

@@ -1,5 +1,5 @@
 <template>
-  <div >
+  <div class="inline-16">
     <el-popconfirm
         title="确定删除当前选中账号吗?"
         @confirm="deleteRow()">

+ 10 - 25
src/HDrpManagement/BrandManage/modules/edit.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="inline-16">
     <el-button size="small" type="text" @click="onShow">编 辑</el-button>
     <el-dialog
         :visible.sync="drawer"
@@ -8,17 +8,17 @@
     >
       <div>
         <el-row :gutter="50">
-          <el-form  :model="form" :rules="rules"  ref="form"  size="mini" label-position="left">
+          <el-form  :model="form" :rules="rules"  ref="form"  size="mini" label-position="left" label-width="80px">
             <el-col :span="20">
               <el-form-item  prop="brandname" label="品牌名称">
                 <el-input v-model="form.brandname"  placeholder="输入品牌名称"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="20">
-              <el-form-item  label="LOGE">
-                <uploadFile v-if="data.attinfos.length === 0" style="margin-top:10px" :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'sa_brand',ownerid:'',usetype:'default'}" @onSuccess="uploadSuccess"></uploadFile>
+              <el-form-item  label="品牌logo">
+                <uploadFile ref="upload" v-if="data.attinfos.length === 0" style="margin-top:10px" :folderid="folderid" accept=".JPG,.PNG,.jpg,.png" btntype="image" :bindData="{ownertable:'sa_brand',ownerid:form.sa_brandid,usetype:'default'}" @onSuccess="uploadSuccess"></uploadFile>
                 <previewImage v-else  :image="data.attinfos[0]" :deletebtn="true"
-                              @onSuccess="clearCover"></previewImage>
+                  @onSuccess="clearCover"></previewImage>
                 <small style="display:block;margin-top:20px" class="info">注:建议上传图片大小1024x1024,大小不超过2M,格式为JPG/PNG</small>
               </el-form-item>
             </el-col>
@@ -63,9 +63,7 @@ name: "edit",
   methods:{
     onShow(){
       this.drawer = true
-      console.log(this.data)
       this.form = this.data
-      console.log(this.form)
     },
     onSubmit () {
       this.$refs['form'].validate(async (valid) => {
@@ -79,32 +77,19 @@ name: "edit",
           }
         })
         this.tool.showMessage(res, () => {
-          console.log(res)
           this.ownerid = res.data
           this.drawer = false
           this.$emit('onSuccess')
-
-          this.bindMedia()
         })
       })
     },
-    async bindMedia(){
-      console.log(this.attachmentids)
-      const res = await this.$api.requested({
-        "classname": "system.attachment.Attachment",
-        "method": "createFileLink",
-        "content": {
-          "ownertable": "sa_brand",
-          "ownerid": this.ownerid,
-          "usetype": "default",
-          "attachmentids": this.attachmentids
-        }
-      })
-    },
     uploadSuccess(res){
-      console.log(res)
+      this.form.attinfos = JSON.parse(res.attinfos).data
+      this.$refs['upload'].dialogUploadVisible = false
     },
-    clearCover () {}
+    clearCover () {
+      this.form.attinfos = []
+    }
   }
 }
 </script>

+ 4 - 1
src/HDrpManagement/BrandManage/modules/list.vue

@@ -2,7 +2,10 @@
   <div>
     <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true" :height="tableHieght">
       <template v-slot:customcol="scope">
-        <p >{{scope.column.data[scope.column.columnname]}}</p>
+        <div v-if="scope.column.columnname === 'brandLoge'">
+          <img width="70" height="70" style="margin-top:10px;border-radius:4px" :src="scope.column.data.attinfos[0]?scope.column.data.attinfos[0].url:''" alt="">
+        </div>
+        <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
         <slot name="edit" :data="scope.data"></slot>

+ 25 - 0
src/HDrpManagement/ProductGroupMag/index.vue

@@ -0,0 +1,25 @@
+<template>
+  <div>
+    <div class="container normal-panel normal-margin">
+      <add></add>
+    </div>
+    <div class="container normal-panel">
+      <list></list>
+    </div>
+  </div>
+</template>
+
+<script>
+import list from './modules/list'
+
+import add from './modules/add'
+export default {
+  components:{
+    list,
+    add
+  }
+}
+
+</script>
+<style>
+</style>

+ 12 - 0
src/HDrpManagement/ProductGroupMag/modules/add.vue

@@ -0,0 +1,12 @@
+<template>
+  <div>add</div>
+</template>
+
+<script>
+export default {
+
+}
+
+</script>
+<style>
+</style>

+ 0 - 0
src/HDrpManagement/CommodityArchives/index.vue → src/HDrpManagement/ProductGroupMag/modules/details.vue


+ 12 - 0
src/HDrpManagement/ProductGroupMag/modules/list.vue

@@ -0,0 +1,12 @@
+<template>
+  <div>list</div>
+</template>
+
+<script>
+export default {
+
+}
+
+</script>
+<style>
+</style>

+ 25 - 0
src/HDrpManagement/ProductMag/index.vue

@@ -0,0 +1,25 @@
+<template>
+  <div>
+    <selectClass>
+      <add slot="add"></add>
+    </selectClass>
+    <list></list>
+  </div>
+</template>
+
+<script>
+import selectClass from './modules/Select'
+import add from './modules/add'
+
+import list from './modules/list'
+export default {
+  components:{
+    selectClass,
+    list,
+    add
+  }
+}
+
+</script>
+<style>
+</style>

+ 78 - 0
src/HDrpManagement/ProductMag/modules/Select.vue

@@ -0,0 +1,78 @@
+<template>
+  <div class="container border-bottom">
+    <div class="flex-align-center flex-between normal-margin">
+      <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>
+    </div>
+    <div>
+
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      value:'',
+      brands:[],
+      brand_act:0
+    }
+  },
+  methods:{
+    async queryBrands () {
+      const res = await this.$api.requested({
+        "id": "20220922085103",
+        "version":1,
+        "content": {
+          "pageSize":1000,
+          "where":{
+            "condition":""
+          }
+        }
+      })
+      this.brands = res.data
+    },
+    async querySalerClass () {
+      const res = await this.$api.requested({
+         "id": "20220922110403",
+          "version":1,
+          "content": {
+            "sa_brandid":this.brand_act
+          }
+      })
+      this.SalerClassList = res.data
+    },
+    clickBrand (id) {
+      this.brand_act = id
+      this.querySalerClass()
+    }
+  },
+  mounted () {
+    this.queryBrands()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.brand-item{
+  margin-right: 20px;
+  color: #768093;
+  cursor: pointer;
+  transition: .2s all linear;
+  font-size: 14px;
+}
+.act{
+  color:#000;
+}
+.border-bottom{
+  border-bottom: 1px solid #e3e5ea;
+}
+</style>

+ 49 - 0
src/HDrpManagement/ProductMag/modules/add.vue

@@ -0,0 +1,49 @@
+<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-col :span="12">
+            <el-form-item label="产品编号">
+              <el-input v-model="form.itemno"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="产品名称">
+              <el-input v-model="form.itemname"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="型号">
+              <el-input v-model="form.model"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="规格">
+              <el-input v-model="form.spec"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      dialogTableVisible:false,
+      form:{
+        itemid:0,
+        itemno:'',
+        itemname:''
+      }
+    }
+  }
+}
+
+</script>
+<style>
+</style>

+ 154 - 0
src/HDrpManagement/ProductMag/modules/list.vue

@@ -0,0 +1,154 @@
+<template>
+<div class="container"> 
+  <div class="produtMag-panel">
+    <el-table
+      :data="tableData"
+      style="width: 100%"
+      :header-cell-style="{height:'50px',color:'#768093',fontWeight:'100'}"
+      :cell-style="{height:'50px',color:'#768093',fontWeight:'200'}">
+      <el-table-column
+        type="selection"
+        width="55">
+      </el-table-column>
+      <el-table-column
+        align="center"
+        prop="isonsale"
+        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>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="itemname"
+        label="产品名称"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        prop="itemno"
+        label="产品编号"
+        width="180">
+      </el-table-column>
+      <el-table-column
+        label="型号/规格">
+        <template slot-scope="scope">
+          <p><span>{{scope.row.model}}</span>&nbsp;/&nbsp;<span>{{scope.row.spec}}</span></p>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="unitid"
+        label="起订量/增量"
+        width="150">
+        <template slot-scope="scope">
+          <p><span>{{scope.row.orderminqty}}</span>&nbsp;/&nbsp;<span>{{scope.row.orderaddqty}}</span></p>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="unitid"
+        label="计量单位"
+        width="90">
+        <template slot-scope="scope">
+          <el-tag size="mini" type="info" effect="plain">{{scope.row.unitid}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="status"
+        label="状态"
+        width="90">
+        <template slot-scope="scope">
+          <span :style="scope.row.status === '新建'?{color:'#52C41A'}:{color:'red'}">{{scope.row.status}}</span>
+        </template>
+      </el-table-column>
+      <el-table-column width="150">
+        <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>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div style="margin-top:16px;text-align:right">
+      <el-pagination
+        background
+        small
+        :current-page="1"
+        :page-size="10"
+        layout="total, prev, pager, next, jumper"
+        :total="100">
+      </el-pagination>
+    </div>
+  </div>
+</div>
+</template>
+
+<script>
+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:'审核'
+      }]
+    }
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.produtMag-panel{
+  /* margin: 30px; */
+  padding:0 10px 10px 10px;
+  background: #fff;
+  border-radius:5px;
+  overflow: hidden;
+  border:1px solid rgb(0 0 0 / 5%)
+  /* box-shadow: 0 5px 5px rgb(0 0 0 / 10%);
+  transform: translate3d(0,-2px,0); */
+}
+</style>

+ 3 - 1
src/HManagement/clueManage/m_activity/modules/details.vue

@@ -44,7 +44,7 @@
         </el-select>
       </el-form-item>
     </el-form>
-    <tableLayout :layout="tablecols" :data="clueList" :custom="true">
+    <tableLayout :layout="activeName === 'first'?tablecols:tablecolsSaler" :data="clueList" :custom="true">
       <template v-slot:customcol="scope">
         <p>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
@@ -164,6 +164,8 @@ export default {
   },
   created () {
     this.tablecols = this.tool.tabelCol(this.$route.name)['clueTable'].tablecols
+    this.tablecolsSaler = this.tool.tabelCol(this.$route.name)['clueSalerTable'].tablecols
+    
   }
 }
 

+ 2 - 2
src/HManagement/marketing/agent/list.vue

@@ -77,12 +77,12 @@ export default {
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);
       this.param.content.pageSize = val
-      this.query_agent(this.param.content.sa_saleareaid)
+      this.query_agent(this.param.content.sa_saleareaids[0])
     },
     handleCurrentChange(val) {
       // console.log(`当前页: ${val}`);
       this.param.content.pageNumber = val
-      this.query_agent(this.param.content.sa_saleareaid)
+      this.query_agent(this.param.content.sa_saleareaids[0])
     }
   },
   mounted () {

+ 3 - 3
src/HManagement/marketing/saler/list.vue

@@ -55,7 +55,7 @@ export default {
   },
   methods:{
     async query_saler (sa_saleareaid) {
-      this.param.content.sa_saleareaid = sa_saleareaid
+      this.param.content.sa_saleareaids = [sa_saleareaid]
       const res = await this.$api.requested(this.param)
       this.list = res.data
       this.total = res.total
@@ -64,12 +64,12 @@ export default {
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);
       this.param.content.pageSize = val
-      this.query_saler(this.param.content.sa_saleareaid)
+      this.query_saler(this.param.content.sa_saleareaids[0])
     },
     handleCurrentChange(val) {
       // console.log(`当前页: ${val}`);
       this.param.content.pageNumber = val
-      this.query_saler(this.param.content.sa_saleareaid)
+      this.query_saler(this.param.content.sa_saleareaids[0])
     }
   },
   mounted () {

+ 1 - 1
src/HManagement/salesForecastTemplate/index.vue

@@ -54,7 +54,7 @@ export default {
     },
     tableRowClick (row) {
       this.sa_salesforecastmodelid = row.sa_salesforecastmodelid
-      this.$refs['forecast'].listData(row.sa_salesforecastmodelid)
+      this.$refs['forecast'].listData(row.sa_salesforecastmodelid,1)
     },
   }
 }

+ 18 - 0
src/HManagement/salesForecastTemplate/modules/add.vue

@@ -186,6 +186,7 @@ export default {
         this.tool.showMessage(res,()=>{
           this.$emit('onSuccess')
           this.dialogFormVisible = false
+          this.refrehsh()
         })
       });
     },
@@ -219,6 +220,23 @@ export default {
         }
       })
       this.rolelist = res.data
+    },
+    refrehsh () {
+      this.form = {
+        sa_salesforecastmodelid:0,
+        title:'',
+        remarks:'',
+        begdate:'',
+        enddate:'',
+        periodtype:'周',
+        periodpoint:[],
+        baseonproject:false,
+        isrepeat:true,
+        taskdays:0,
+        sales:[],
+        roles:[],
+        
+      }
     }
   },
   mounted () {

+ 5 - 4
src/HManagement/salesForecastTemplate/modules/forecastList.vue

@@ -4,7 +4,7 @@
     <p class="normal-title normal-margin">销售预测记录</p>
     <div class="flex-align-center  search-panel normal-margin">
       <p>搜索:</p>
-      <el-input style="width:200px" size="small" placeholder="模板名称" @keyup.native.enter="listData(params.content.pageNumber = 1)" @clear="listData(params.content.pageNumber = 1)" v-model="params.content.where.condition" prefix-icon="el-icon-search" clearable></el-input>
+      <el-input style="width:200px" size="small" placeholder="单号" @keyup.native.enter="listData(null,1)" @clear="listData(null,1)" v-model="params.content.where.condition" prefix-icon="el-icon-search" clearable></el-input>
     </div>
     <!-- 表格主题 -->
     <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true" :fixedName="'operation'" height="300px" @rowClick="rowClick">
@@ -67,7 +67,8 @@ export default {
     }
   },
   methods:{
-    async listData (sa_salesforecastmodelid) {
+    async listData (sa_salesforecastmodelid,pageNumber) {
+      this.params.content.pageNumber = pageNumber
       this.params.content.sa_salesforecastmodelid = sa_salesforecastmodelid?sa_salesforecastmodelid:this.params.content.sa_salesforecastmodelid
       const res = await this.$api.requested(this.params)
       this.list = res.data
@@ -77,12 +78,12 @@ export default {
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);
       this.params.content.pageSize = val
-      this.listData()
+      this.listData(null,this.params.content.pageNumber)
     },
     handleCurrentChange(val) {
       // console.log(`当前页: ${val}`);
       this.params.content.pageNumber = val
-      this.listData()
+      this.listData(null,val)
     },
     rowClick (row) {
       this.$emit('tableRowClick',row)

+ 2 - 2
src/HManagement/salesForecastTemplate/modules/templateList.vue

@@ -4,7 +4,7 @@
     <p class="normal-title normal-margin">预测模板</p>
     <div class="flex-align-center  search-panel normal-margin">
       <p>搜索:</p>
-      <el-input style="width:200px" size="small" placeholder="模板名称" @keyup.native.enter="listData(params.content.pageNumber = 1)" @clear="listData(params.content.pageNumber = 1)" v-model="params.content.where.condition" prefix-icon="el-icon-search" clearable></el-input>
+      <el-input style="width:200px" size="small" placeholder="模板名称,模板编号" @keyup.native.enter="listData(params.content.pageNumber = 1)" @clear="listData(params.content.pageNumber = 1)" v-model="params.content.where.condition" prefix-icon="el-icon-search" clearable></el-input>
     </div>
     <!-- 表格主题 -->
     <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true" :fixedName="'operation'" height="300px" @rowClick="rowClick">
@@ -27,7 +27,7 @@
       </template>
       <template v-slot:opreation="scope">
         <slot v-if="scope.data.status === '新建'" name="edit" :data="scope.data"></slot>
-        <slot name="release" :data="scope.data"></slot>
+        <slot v-if="scope.data.status !== '结束'" name="release" :data="scope.data"></slot>
         <slot v-if="scope.data.status === '新建'" name="del" :data="scope.data"></slot>
         <slot v-if="scope.data.status === '发布'" name="finish" :data="scope.data"></slot>
       </template>

+ 21 - 0
src/SDrpManagement/Products/index.vue

@@ -0,0 +1,21 @@
+<template>
+  <div>
+    <select-class></select-class>
+    <list></list>
+  </div>
+</template>
+
+<script>
+import list from './modules/list'
+import selectClass from './modules/Select'
+
+export default {
+  components:{
+    list,
+    selectClass
+  }
+}
+
+</script>
+<style>
+</style>

+ 67 - 0
src/SDrpManagement/Products/modules/ProductDetails.vue

@@ -0,0 +1,67 @@
+<template>
+<div class="container normal-panel">
+  <div class="product-detail container">
+    <el-row :gutter="20">
+      <el-col :span="7">
+        <img style="width:100%" src="http://oms.idcgroup.com.cn:8082/samex/servlet/attchdown/3459" alt="">
+      </el-col>
+      <el-col :span="17">
+        <div>
+          <p class="productName normal-margin">铜本色等径直通</p>
+          <p class="normal-margin" style="color:#888;">编码:&emsp;BM8270 0540000</p>
+          <p class="normal-margin">价格:<span style="color:red;font-size:1.25rem">&emsp;¥199</span></p>
+          <div class="line normal-margin"></div>
+          <div>
+            <p class="normal-margin">规格:</p>
+          </div>
+          <div class="flex-align-center" style="margin-bottom:30px">
+            <p>数量:&emsp;</p>
+            <el-input-number v-model="num" :min="1" :max="10" label="描述文字"></el-input-number>
+          </div>
+          <p class="normal-margin">型号:&emsp;--</p>
+          <p class="normal-margin">材质:&emsp;--</p>
+          <el-button class="normal-margin" type="primary" style="width:200px">加入购物车</el-button>
+          <div>
+            <p>相关链接</p>
+          </div>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      num:0
+    }
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.product-detail{
+  background: #fff;
+  width: 80%;
+  margin:30px 0;
+  border-radius: 10px;
+}
+.product-detail p{
+  font-size: 14px;
+  color:#888 ;
+}
+.productName{
+  font-size: 1.75rem !important;
+  color: #333 !important;
+}
+.line{
+  border-bottom: 1px dashed #e3e5ea;
+}
+.border-left {
+  border-left:1px solid #e3e5ea
+}
+</style>

+ 56 - 0
src/SDrpManagement/Products/modules/Select.vue

@@ -0,0 +1,56 @@
+<template>
+  <div class="container border-bottom">
+    <ul class="flex-align-center normal-margin">
+      <li :class="brand_act === item.sa_brandid?'act':''" class="brand-item" v-for="item in brands" :key="item.sa_brandid" @click="(brand_act = item.sa_brandid)">{{item.brandname}}</li>
+    </ul>
+    <div>
+
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      brands:[],
+      brand_act:0
+    }
+  },
+  methods:{
+    async queryBrands () {
+      const res = await this.$api.requested({
+        "id": "20220922085103",
+        "version":1,
+        "content": {
+          "pageSize":1000,
+          "where":{
+            "condition":""
+          }
+        }
+      })
+      this.brands = res.data
+    }
+  },
+  mounted () {
+    this.queryBrands()
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.brand-item{
+  margin-right: 20px;
+  color: #768093;
+  cursor: pointer;
+  transition: .2s all linear;
+}
+.act{
+  color:#000;
+}
+.border-bottom{
+  border-bottom: 1px solid #e3e5ea;
+}
+</style>

+ 87 - 0
src/SDrpManagement/Products/modules/list.vue

@@ -0,0 +1,87 @@
+<template>
+  <div>
+    <div class="container">
+      <el-row :gutter="20">
+        <el-col @click.native="$router.push({path:'/ProductDetails'})" :span="4" v-for="item in list" :key="item.index">
+          <div class="product-card">
+            <div class="product-image">
+              <img style="width:100%" :src="item.cover" alt="">
+            </div>
+            <div class="product-info">
+              <p>{{item.itemname}}</p>
+              <p class="product-itemno">编码:{{item.itemno}}</p>
+              <p class="product-price flex-align-center flex-between">
+                <span>¥{{item.price}}</span>
+                <i style="font-size:1.5rem;color:#666" class="el-icon-shopping-cart-2"></i>
+              </p>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+      <div style="margin-top:16px;text-align:center">
+      <el-pagination
+        background
+        small
+        :current-page="1"
+        :page-size="10"
+        layout="total, prev, pager, next, jumper"
+        :total="100">
+      </el-pagination>
+    </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      list:[]
+    }
+  },
+  mounted () {
+    for (let i = 0;i<10;i++) {
+      this.list.push({
+        cover:'http://oms.idcgroup.com.cn:8082/samex/servlet/attchdown/3459',
+        itemname:'紫铜覆塑管',
+        itemno:'NBNTO-28571530003',
+        price:199
+      })
+    }
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.product-card{
+  padding: 10px;
+  margin-bottom: 20px;
+  background: #fff;
+  transition: all .2s linear;
+  cursor: pointer;
+}
+.product-image{
+  display: flex;
+  align-items: center;
+  height: 150px;
+  overflow: hidden;
+}
+.product-info{
+  padding:10px
+}
+.product-card:hover{
+  box-shadow: 0 15px 30px rgb(0 0 0 / 10%);
+  transform: translate3d(0,-2px,0);
+}
+.product-price {
+  font-size: 14px;
+  color: red;
+}
+.product-itemno{
+  font-size: 12px;
+  color:#888;
+  margin-bottom: 20px;
+}
+</style>

+ 12 - 0
src/SDrpManagement/commdiityGroup/index.vue

@@ -0,0 +1,12 @@
+<template>
+  <div></div>
+</template>
+
+<script>
+export default {
+
+}
+
+</script>
+<style>
+</style>

+ 5 - 2
src/components/upload/hw_obs_upload.vue

@@ -119,7 +119,7 @@ export default {
     },
 
     // 上传成功以后生成附件记录
-    async createFileRecord (obsfilename) {
+    async createFileRecord (obsfilename,attinfos) {
       let obj = {
          "serialfilename": obsfilename
       }
@@ -130,7 +130,9 @@ export default {
         "content":obj
       }
       const res = await this.$api.requested(param)
-      this.$emit('onSuccess',res)
+      if (res.code ===  1) {
+        this.$emit('onSuccess',res)
+      }
     },
 
     clearFiles () {
@@ -144,6 +146,7 @@ export default {
       this.dialogUploadVisible = false
     },
     onBindSuccess (res) {
+      console.log(res)
       this.$emit('onSuccess',res)
     }
   }

+ 29 - 9
src/router/HDrpManagement.js

@@ -1,13 +1,13 @@
 const HDrpManagement = [
-    {
-        path: '/brandmag',
-        name: 'brandmag',
-        meta: {
-            title: '品牌管理',
-            ast_nav: true
-        },
-        component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/BrandManage/index')
-    },
+  {
+      path: '/brandmag',
+      name: 'brandmag',
+      meta: {
+          title: '品牌管理',
+          ast_nav: true
+      },
+      component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/BrandManage/index')
+  },
   {
     path: '/sm_unit',
     name: 'unit',
@@ -17,6 +17,26 @@ const HDrpManagement = [
       keeproute: true
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/unit/index')
+  },
+  {
+    path: '/productgroupmag',
+    name: 'productgroupmag',
+    meta: {
+      title: '商品组管理',
+      ast_nav: true,
+      keeproute: true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/ProductGroupMag/index')
+  },
+  {
+    path: '/productmag',
+    name: 'productmag',
+    meta: {
+      title: '商品管理',
+      ast_nav: true,
+      keeproute: true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/ProductMag/index')
   },{
     path: '/sm_saleclass',
     name: 'saleclass',

+ 19 - 1
src/router/SDrpManagement.js

@@ -1,4 +1,22 @@
 const SDrpManagement = [
-  
+  {
+    path: '/products',
+    name: 'products',
+    meta: {
+      title: '商品档案',
+      ast_nav:true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/Products/index.vue')
+  },
+  {
+    path: '/ProductDetails',
+    name: 'products',
+    meta: {
+      title: '商品详情',
+      ast_nav:true,
+      keeproute: true
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/SDrpManagement/Products/modules/ProductDetails.vue')
+  },
 ]
 export default SDrpManagement

+ 3 - 2
src/style/style.css

@@ -3,8 +3,9 @@
   padding: 0;
 }
 body{
-  font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, Helvetica,Arial,"Microsoft Yahei","Hiragino Sans GB","Heiti SC","WenQuanYi Micro Hei",sans-serif;
-  font-size: 16px;
+  /* font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, Helvetica,Arial,"Microsoft Yahei","Hiragino Sans GB","Heiti SC","WenQuanYi Micro Hei",sans-serif;
+  font-size: 16px; */
+  font:16px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
   color: #333333;
   background-color: #FAFAFA;
   /* min-width: 1200px; */

+ 0 - 1
yos/index.html

@@ -1 +0,0 @@
-<!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>