mushencc 3 年之前
父節點
當前提交
849c5b020e

+ 9 - 0
src/routerMap/index.js

@@ -1123,6 +1123,15 @@ const routerMap = [
       require(["@/views/Warehouse/Warehouse/minStockList"], resolve),
   },
   {
+    path: "/cms/Warehouse/Warehouse/highestStockList",
+    name: "highestStockList", // 仓库管理→最高库存预警表
+    meta: {
+      index: 3,
+    },
+    component: (resolve) =>
+      require(["@/views/Warehouse/Warehouse/highestStockList"], resolve),
+  },
+  {
     path: "/cms/Warehouse/Warehouse/stockingTable",
     name: "stockingTable", // 仓库管理→库存台账
     meta: {

+ 5 - 5
src/views/BasicSettings/AdditionalProject/index.vue

@@ -111,11 +111,11 @@ export default {
       page_size: 10,
       proxyObj: {},
       tableColums: [
-        { title: '序号', type: 'index', key: '', align: 'center', width: 80 },
-        { title: '附加项目名称', key: 'title', align: 'center', tooltip: true, minWidth: 140 },
-        { title: '数量', key: 'num', align: 'center', tooltip: true, minWidth: 140 },
-        { title: '单价', key: 'price', align: 'center', tooltip: true, minWidth: 140 },
-        { title: '操作', key: '', align: 'center', slot: 'set', width: 200 },
+        { title: '序号', type: 'index', key: '', align: 'center', resizable: true,width: 200 },
+        { title: '附加项目名称', key: 'title', align: 'center', tooltip: true, resizable: true,width: 400 },
+        { title: '数量', key: 'num', align: 'center', tooltip: true, resizable: true,width: 400 },
+        { title: '单价', key: 'price', align: 'center', tooltip: true, resizable: true,width: 400 },
+        { title: '操作', key: '', align: 'center', slot: 'set', minWidth: 200 },
       ],
       tableData: [],
       type: null,

+ 7 - 7
src/views/BasicSettings/SuppliersManage/SippliersList.vue

@@ -198,16 +198,16 @@ export default {
         size: "small",
       },
       tableColumns: [
-        { title: "供应商编码", key: "code", align: "center", minWidth: 110 },
-        { title: "供应商名称", key: "title", align: "center", minWidth: 200 },
-        { title: "业务员", key: "nickname", align: "center", minWidth: 80 },
-        { title: "负责人", key: "contact", align: "center", minWidth: 80 },
-        { title: "手机号", key: "mobile", align: "center", minWidth: 150 },
+        { title: "供应商编码", key: "code", align: "center", resizable: true,width: 150 },
+        { title: "供应商名称", key: "title", align: "center", resizable: true,width: 300 },
+        { title: "业务员", key: "nickname", align: "center",resizable: true,width: 130 },
+        { title: "负责人", key: "contact", align: "center",resizable: true,width: 130 },
+        { title: "手机号", key: "mobile", align: "center", resizable: true,width: 200 },
         {
           title: "是否启用",
           key: "state",
           align: "center",
-          minWidth: 100,
+          resizable: true,width: 100,
           render: (h, params) => {
             const { row } = params;
             return h("span", {}, row.state == 1 ? "是" : "否");
@@ -217,7 +217,7 @@ export default {
           title: "创建时间",
           key: "crt_time",
           align: "center",
-          minWidth: 120,
+         resizable: true,width: 220,
           render: (h, params) => {
             const { row } = params;
             return h("span", {}, this.func.replaceDate(row.crt_time));

+ 6 - 6
src/views/BasicSettings/SuppliersManage/SippliersStockPriceList.vue

@@ -123,13 +123,13 @@ export default {
         type_title:'',
       },
       tableColumns: [
-        { title: '供应商分类编码', key: 'type_code', align: 'center', minWidth: 140 },
-        { title: '供应商分类名称', key: 'type_title', align: 'center', minWidth: 140 },
-        { title: '供应商编码', key: 'code', align: 'center', minWidth: 120 },
-        { title: '供应商名称', key: 'title', align: 'center', minWidth: 120 },
-        { title: '审核人', key: 'nickname', align: 'center', minWidth: 120 },
+        { title: '供应商分类编码', key: 'type_code', align: 'center',resizable: true,width: 260 },
+        { title: '供应商分类名称', key: 'type_title', align: 'center',resizable: true,width: 260 },
+        { title: '供应商编码', key: 'code', align: 'center', resizable: true,width: 240 },
+        { title: '供应商名称', key: 'title', align: 'center',resizable: true,width: 240 },
+        { title: '审核人', key: 'nickname', align: 'center',resizable: true,width: 240 },
         {
-          title: '审核状态', key: 'state', align: 'center', minWidth: 120,
+          title: '审核状态', key: 'state', align: 'center',resizable: true,width: 240,
           render: (h, params) => {
             const { row } = params
             return h('span', {}, row.state == 0 ? '未审核' : '已审核')

+ 19 - 2
src/views/OrderMannage/BusinessOrderlist/list.vue

@@ -509,6 +509,8 @@ export default {
         { title: "收款备注", align: "center", key: "remark" },
       ],
       modalChargeTableData: [],
+      client_name_list:[],
+      address_list:[],
       tableData: [],
       page_index: 1,
       page_size: 10,
@@ -803,17 +805,25 @@ export default {
         },
         {
           title: "客户姓名",
-          name: "Input",
+          name: "Select",
           placeholder: "请输入客户姓名",
+          filterable: true,
           value: "",
           serverName: "client_name",
+          optionName: "client_name",
+          optionValue: "client_name",
+          option: this.client_name_list,
         },
         {
           title: "客户地址",
-          name: "Input",
+          name: "Select",
           placeholder: "请输入客户地址",
+          filterable: true,
           value: "",
           serverName: "address",
+          optionName: "address",
+          optionValue: "address",
+          option: this.address_list,
         },
         {
           title: "业务员",
@@ -961,6 +971,13 @@ export default {
           this.tableData = res.data.data;
           this.total = res.data.total;
           this.handleSetHeader(res);
+          
+         for(let i = 0;i<res.data.address.length;i++){
+           this.address_list.push({address:res.data.address[i]})
+         }
+          for(let i = 0;i<res.data.client_name.length;i++){
+           this.client_name_list.push({client_name:res.data.client_name[i]})
+         }
         }
       });
     },

+ 36 - 18
src/views/PartsMannage/edit.vue

@@ -443,7 +443,8 @@ export default {
           align: "center",
           key: "spare_parts",
           slot: "spare_parts",
-          minWidth: 150,
+          resizable: true,
+          width: 150,
           fixed: "left",
         },
         {
@@ -451,35 +452,40 @@ export default {
           align: "center",
           key: "title",
           slot: "title",
-          minWidth: 150,
+           resizable: true,
+          width: 150,
         },
         {
           title: "数量",
           align: "center",
           key: "number",
           slot: "number",
-          minWidth: 150,
+           resizable: true,
+          width: 150,
         },
         {
           title: "单位",
           align: "center",
           key: "company",
           slot: "company",
-          minWidth: 100,
+           resizable: true,
+          width: 150,
         },
         {
           title: "高",
           align: "center",
           key: "long",
           slot: "long",
-          minWidth: 120,
+          resizable: true,
+          width: 150,
         },
         {
           title: "宽",
           align: "center",
           key: "wide",
           slot: "wide",
-          minWidth: 120,
+          resizable: true,
+          width: 150,
         },
         {
           title: "厚",
@@ -493,49 +499,56 @@ export default {
           align: "center",
           key: "requirement",
           slot: "requirement",
-          minWidth: 150,
+           resizable: true,
+          width: 150,
         },
         {
           title: "贴木皮名称",
           align: "center",
           key: "num",
           slot: "woodSkinSet",
-          minWidth: 150,
+          resizable: true,
+          width: 150,
         },
         {
           title: "贴面数",
           align: "center",
           key: "sub_num",
           slot: "sub_num",
-          minWidth: 150,
+          resizable: true,
+          width: 150,
         },
         {
           title: "油漆组合",
           align: "center",
           key: "paint",
           slot: "paintSet",
-          minWidth: 150,
+           resizable: true,
+          width: 150,
         },
          {
           title: "是否生成芯片码",
           align: "center",
           key: "label",
           slot: "label",
-          minWidth: 150,
+          resizable: true,
+          width: 150,
         },
          {
           title: "打印格式",
           align: "center",
           key: "format",
           slot: "format",
-          minWidth: 150,
+           resizable: true,
+          width: 150,
         },
         {
           title: "打印数量",
           align: "center",
           key: "printNum",
           slot: "printNum",
-          minWidth: 150,
+          resizable: true,
+          width: 150,
         },
         {
           title: "操作",
@@ -551,35 +564,40 @@ export default {
           align: "center",
           key: "spare_parts",
           slot: "slot_metals",
-          minWidth: 150,
+          resizable: true,
+          width: 260,
         },
         {
           title: "数量",
           align: "center",
           key: "number",
           slot: "slot_metals_number",
-          minWidth: 150,
+          resizable: true,
+          width: 260,
         },
         {
           title: "单位",
           align: "center",
           key: "unit",
           slot: "slot_metals_unit",
-          minWidth: 100,
+          resizable: true,
+          width: 260,
         },
         {
           title: "单价",
           align: "center",
           key: "price",
           slot: "slot_metals_price",
-          minWidth: 100,
+          resizable: true,
+          width: 260,
         },
         {
           title: "总价",
           align: "center",
           key: "total_prive",
           slot: "slot_metals_total_price",
-          minWidth: 100,
+           resizable: true,
+          width: 260,
         },
         {
           title: "操作",

+ 7 - 7
src/views/PartsMannage/index.vue

@@ -90,15 +90,15 @@ export default {
   data () {
     return {
       list: [
-        { title: '部件名称', name: 'Input', value: '', serverName: 'title', placeholder: '请输入部件名称' },
+        { title: '部件名称', name: 'Input', value: '', serverName: 'title', placeholder: '请输入部件名称' ,width: "180" },
       ],
       tableColums: [
-        { title: '序号', type: 'index', align: 'center', key: '', minWidth: 100 },
-        { title: '产品分类名称', align: 'center', key: 'product_type_title', minWidth: 100 },
-        { title: '部件分类名称', align: 'center', key: 'p_title', minWidth: 100 },
-        { title: '部件名称', align: 'center', key: 'title', minWidth: 100 },
-        { title: '单位', align: 'center', key: 'company', minWidth: 100 },
-        { title: '操作', align: 'center', slot: 'set', width: '150' },
+        { title: '序号', type: 'index', align: 'center', key: '', resizable: true,width: 100 },
+        { title: '产品分类名称', align: 'center', key: 'product_type_title', resizable: true,width: 350 },
+        { title: '部件分类名称', align: 'center', key: 'p_title', resizable: true,width: 350 },
+        { title: '部件名称', align: 'center', key: 'title', resizable: true,width: 350 },
+        { title: '单位', align: 'center', key: 'company', resizable: true,width: 200 },
+        { title: '操作', align: 'center', slot: 'set', minWidth: 150 },
       ],
       tableData: [],
       pageIndex: 1,

+ 19 - 0
src/views/ProcessMannage/index.vue

@@ -14,6 +14,7 @@
       :total="total"
     >
       <div slot="titleButton" style="display:flex">
+         <Button type="success" ghost icon='ios-download-outline' style="margin-right:10px;" @click='exportData()'>导出</Button>
         <Button
           v-if="persimissionData['新增'] || persimissionData.all"
           @click="addItems"
@@ -225,6 +226,24 @@ export default {
       //   this.getData(this.proxyObj)
       // }
     },
+  exportData(){
+    let url ='';
+    if(this.$route.query.id==1){
+      url = '/api/process_material_export';
+    }
+    if(this.$route.query.id==2){
+      url = "/api/process_finish_export";
+    }
+    if(this.$route.query.id==3){
+      url = "/api/process_ship_export";
+    }
+    this.axios.get(url,{params:{id:this.$route.query.id}}).then(res=>{
+              if(res.code == 200){
+                let url = `${this.$store.state.ip}/api/storage/${res.data.file}`
+                location.href = url
+            }
+           })
+        },
     postInfo() {
       let post_url, post_data;
       if (this.showType == 1) {

+ 10 - 7
src/views/ProductMannage/index.vue

@@ -263,17 +263,19 @@ export default {
           type: "index",
           align: "center",
           key: "",
-          width: "100",
+           resizable: true,
+          width: 100,
         },
-        { title: "分类名称", align: "center", key: "type_name" },
-        { title: "产品名称", align: "center", key: "title" },
-        { title: "计量单位", align: "center", key: "unit" },
-        { title: "型号", align: "center", key: "model" },
-        { title: "图号", align: "center", key: "url_number" },
+        { title: "分类名称", align: "center", key: "type_name", resizable: true,width:200 },
+        { title: "产品名称", align: "center", key: "title" , resizable: true,width:200},
+        { title: "计量单位", align: "center", key: "unit" , resizable: true,width:200},
+        { title: "型号", align: "center", key: "model", resizable: true,width:200 },
+        { title: "图号", align: "center", key: "url_number", resizable: true,width:200 },
         {
           title: "产品图片",
           align: "center",
           key: "company",
+           resizable: true,width:200,
           render: (h, params) => {
             const { row } = params;
             return h("img", {
@@ -330,6 +332,7 @@ export default {
           title: "图纸",
           align: "center",
           key: "url",
+         resizable: true,width:200,
           render: (h, params) => {
             const { row } = params;
             return h("img", {
@@ -358,7 +361,7 @@ export default {
             });
           },
         },
-        { title: "操作", align: "center", slot: "set", width: "150" },
+        { title: "操作", align: "center", slot: "set", minWidth: 150 },
       ],
       tableData: [],
       pageIndex: 1,

+ 134 - 0
src/views/Warehouse/Warehouse/highestStockList.vue

@@ -0,0 +1,134 @@
+<template>
+    <div>
+         <Toptitle title="最高库存预警表">
+      <slot name="titleButton">
+        <div style="display:flex;">
+          <Button @click="exportData"
+                  type="warning"
+                  ghost
+                  icon='md-return-left'
+                  style="margin-right:10px;">导出</Button>
+        </div>
+      </slot>
+    </Toptitle>
+     <div class="warehouseList_top">
+      <Form :label-width="100">
+        <FormItem label="物料分类">
+          <Select v-model="searchData.material_type_id"
+        
+                  multiple
+                  filterable
+                  style="width:200px">
+            <Option v-for="item in materialTypeList"
+                    :key="item.id"
+                    :value="item.id"
+                    :label="item.title">
+            </Option>
+          </Select>
+        </FormItem>
+        <FormItem label="物料名称">
+          <Select v-model="searchData.material_id"
+      
+                  multiple
+                  filterable
+                  style="width:200px">
+            <Option v-for="item in materialNameList"
+                    :key="item.id"
+                    :value="item.id"
+
+                    :label="item.title">
+            </Option>
+          </Select>
+        </FormItem>
+        <FormItem>
+          <Button type="primary"
+                  @click="handleSearchData">搜索</Button>
+        </FormItem>
+      </Form>
+    </div>
+    <div class="warehouseList_content">
+      <Table :columns="tableColums"
+             :data="tableData"
+             border>
+      </Table>
+      <div class="pageSlotStyle">
+        <Page :page-size-opts="[10, 20, 30, 40,100,1000]"
+              @on-page-size-change='changeSize'
+              @on-change='changePage'
+              :current='page_index'
+              show-total
+              :total="total"
+              show-sizer
+              :page-size='page_size' />
+      </div>
+    </div>
+    </div>
+</template>
+<script>
+export default {
+    data(){
+         return{
+              searchData:{
+                  material_type_id:'',
+                  material_id:''
+              },
+              materialTypeList:[],
+              materialNameList:[],
+              tableData:[],
+              tableColums:[
+                  { title: '物料名称', align: 'center', key: 'title', minWidth: 120 },
+                  { title: '规格型号', align: 'center', key: 'model', minWidth: 120 },
+                  { title: '计量单位', align: 'center', key: 'unit', minWidth: 120 },
+                  { title: '最高库存', align: 'center', key: 'top_number', minWidth: 120 },
+                  { title: '现存量', align: 'center', key: 'num', minWidth: 120 },
+                  { title: '差量', align: 'center', key: 'difference', minWidth: 120 }
+              ],
+              total:'',
+              page_size:10,
+              page_index:1,
+         }
+    },
+    created(){
+       this.getData();
+    },
+  methods:{
+      exportData(){
+
+      },
+       changeSize (e) {
+      this.page_size = e;
+      this.getData()
+    },
+     changePage (e) {
+      this.page_index = e;
+      this.getData()
+    },
+    getData(row){
+        this.axios.get('/api/warehouse_stock_highest_list',{params:{row}}).then(res=>{
+             this.tableData = res.data.data;
+             for(let i =0;i<res.data.material;i++){
+                 console.log(1)
+                 this.materialNameList.push({label:res.data.material[i],value:res.data.material[i]})
+             }
+               for(let i =0;i<res.data.type_title;i++){
+                 this.materialTypeList.push({label:res.data.type_title[i],value:res.data.type_title[i]})
+             }
+             
+        })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.warehouseList_top{
+    margin: 20px 0;
+}
+.ivu-form{
+    display: flex;
+    flex-wrap: wrap;
+}
+.pageSlotStyle{
+   margin: 20px 0;
+    text-align: center;
+}
+</style>

+ 5 - 5
src/views/leadMatch/MatchList/matchList.vue

@@ -94,21 +94,21 @@ export default {
           align: "center",
           key: "project_number",
          resizable: true,
-                        width: 250
+                        width: 350
         },
         {
           title: "项目名称",
           align: "center",
           key: "project_name",
           resizable: true,
-                        width: 250
+                        width: 350
         },
         {
           title: "项目简称",
           align: "center",
           key: "project_short_title",
           resizable: true,
-                        width: 250
+                        width: 350
         },
         // {
         //   title: "匹配状态",
@@ -149,12 +149,12 @@ export default {
           align: "center",
           key: "crt_time",
           resizable: true,
-                        width: 250,
+                        width: 350,
           render: (h, params) => {
             return h("span", {}, this.func.replaceDate(params.row.crt_time));
           },
         },
-        { title: "操作", align: "center", minWidth: 60, slot: "setSlot" },
+        { title: "操作", align: "center", minWidth: 150, slot: "setSlot" },
       ],
       tableData: [],
       page_index: 1,

+ 1 - 3
src/views/leadMatch/MatchList/matchPage.vue

@@ -862,7 +862,6 @@ export default {
         { title: "房号", align: "center", key: "number", minWidth: 60 },
       ], //未匹配房间表头
       unmatchedRoomTableColumnsUsed: [],
-      copy_unmatchedRoomTableColumnsUsed:[],
       matchedSheetTableColumns: [
         // { title: "全选", align: "center", minWidth: 60, type: "selection" },
         { title: "序号", align: "center", type: "index",  minWidth: 60 },
@@ -1029,8 +1028,7 @@ export default {
                     return { title: v, align: "center", key: v, minWidth: 60 };
                   })
                 );
-                this.copy_unmatchedRoomTableColumnsUsed = JSON.parse(JSON.stringify(this.unmatchedRoomTableColumnsUsed));
-                this.unmatchedRoomTableColumnsModal = this.copy_unmatchedRoomTableColumnsUsed.concat(
+                this.unmatchedRoomTableColumnsModal = this.unmatchedRoomTableColumnsUsed.concat(
                   {
                     title: "匹配数量",
                     align: "center",

+ 5 - 5
src/views/leadMatch/roomList/list.vue

@@ -79,18 +79,18 @@ export default {
       ],
       tableColumns: [
         { title: "项目编码", key: "project_number", align: "center", resizable: true,
-                        width: 300},
+                        width: 350},
         { title: "项目名称", key: "project_name", align: "center", resizable: true,
-                        width: 300},
+                        width: 350},
         { title: "项目简称", key: "abbreviation", align: "center",resizable: true,
-                        width: 300},
+                        width: 350},
         // { title: "匹配状态", key: "state", align: "center", minWidth: 140 ,
         // render:(h,params)=>{
         //   return h('span',{},params.row.state===0?'未匹配':params.row.state===2?'匹配完成':'匹配中')
         // }},
         { title: "制单日期", key: "make_data", align: "center", resizable: true,
-                        width: 300 ,slot:"make_data"},
-        { title: "操作", key:'',align: "center", minWidth: 140 , 
+                        width: 350 ,slot:"make_data"},
+        { title: "操作", key:'',align: "center", minWidth: 150 , 
          render: (h, params) => {
                             return h('div', [
                                 h('a', { style: {

+ 5 - 5
src/views/leadMatch/weightMemo/list.vue

@@ -79,18 +79,18 @@ export default {
       ],
       tableColumns: [
         { title: "项目编码", key: "project_number", align: "center" , resizable: true,
-                        width: 300},
+                        width: 350},
         { title: "项目名称", key: "project_name", align: "center",  resizable: true,
-                        width: 300 },
+                        width: 350 },
         { title: "项目简称", key: "abbreviation", align: "center", resizable: true,
-                        width: 300},
+                        width: 350},
         // { title: "匹配状态", key: "state", align: "center", minWidth: 140,
         // render:(h,params)=>{
         //   return h('span',{},params.row.state===0?'未匹配':params.row.state===2?'匹配完成':'匹配中')
         // }},
         { title: "制单日期", key: "make_data", align: "center",  resizable: true,
-                        width: 300,slot:"make_data"},
-        { title: "操作", key:'',align: "center", 
+                        width: 350,slot:"make_data"},
+        { title: "操作", key:'',align: "center", minWidth:150,
          render: (h, params) => {
                             return h('div', [
                                 h('a', { style: {

+ 1 - 1
vue.config.js

@@ -2,7 +2,7 @@ const axios_default_ip =
   process.env.NODE_ENV == "dev"
     ? "http://121.41.102.225:82"
     : process.env.NODE_ENV == "test-prd"
-    ? "http://124.71.176.88:882" //测试服
+    ? "http://121.41.102.225:82" //测试服
     : process.env.NODE_ENV == "prd_other"
     ? "http://121.37.173.82:82" //贝斯特
     : "http://124.71.176.88:82";