wenningning 6 months ago
parent
commit
3ab2956919

+ 86 - 61
manager-admin/src/views/dashboard/index.vue

@@ -2,12 +2,23 @@
   <div class="dashboard-container" v-loading="loading">
     <el-card>
       <div>
-        <el-link type="success" target="_blank" href="https://alidocs.dingtalk.com/i/nodes/YMyQA2dXW793xrY6cyAOx4lZJzlwrZgb?utm_scene=person_space">用户需求收集表</el-link>
+        <el-link type="success" target="_blank"
+                 href="https://alidocs.dingtalk.com/i/nodes/YMyQA2dXW793xrY6cyAOx4lZJzlwrZgb?utm_scene=person_space">
+          用户需求收集表
+        </el-link>
       </div>
     </el-card>
     <el-divider></el-divider>
     <el-card>
       <div>
+        <b>20241226-wnn</b>
+        <p>- 生产备注可以叠加</p>
+        <p>- 订单产品列表加上产品类型搜索</p>
+        <p>- 管理员允许修改订单产品数量;</p>
+        <p>- 订单服务相关的网络类型增加客户私有云类型;</p>
+        <p>- 修复订单状态逻辑;</p>
+        <p>- 订单产品搜索增加生产状态搜索;</p>
+        <p>- 所有订单页面增加状态、项目名称、销售排序功能;</p>
         <b>20241225-wnn</b>
         <p>- 生产备注可以叠加</p>
         <p>- 2、订单增加一个订单复制功能,方便销售填写增量订单和代理商复购订单;</p>
@@ -31,82 +42,96 @@
         <p>- 草稿详细产品增加了列表展示与导出excel,优化了产品图表流式布局</p>
         <p>- 定单增加了快捷过滤按钮组</p>
         <p>- 定单详细产品增加了列表展示与导出excel,优化了产品图表流式布局</p>
-        <p>- 生产用产品列表增加了更多字段显示,增加了当前页导出excel,增加了选中导出,增加了产品编码链接至产品详情,方便查看</p>
+        <p>-
+          生产用产品列表增加了更多字段显示,增加了当前页导出excel,增加了选中导出,增加了产品编码链接至产品详情,方便查看</p>
       </div>
     </el-card>
   </div>
 </template>
 
 <script>
-  import * as API_Common from '@/api/common'
+import * as API_Common from '@/api/common'
 
-  export default {
-    name: 'dashboard',
-    data() {
-      return {
-        loading: false,
-        goodsList: null,
-        memberList: null,
-        tableHeight: (document.body.clientHeight - 80 - 44 - 80 - 80 - 20 - 20 - 4) / 2
-      }
-    },
-    filters: {
-      secrecyMobile(mobile) {
-        mobile = String(mobile)
-        if (!/\d{11}/.test(mobile)) {
-          return mobile
-        }
-        return mobile.replace(/(\d{3})(\d{4})(\d{4})/, '$1****$3')
-      }
-    },
-    activated() {
-      window.onresize = this.countTableHeight
-    },
-    mounted() {
-    },
-    methods: {
-      /** 窗口缩放时计算table高度 */
-      countTableHeight() {
-        this.tableHeight = (document.body.clientHeight - 80 - 44 - 80 - 80 - 20 - 20 - 4) / 2
-        /** 图表刷新 */
-        setTimeout(this.sesalChart.resize)
+export default {
+  name: 'dashboard',
+  data() {
+    return {
+      loading: false,
+      goodsList: null,
+      memberList: null,
+      tableHeight: (document.body.clientHeight - 80 - 44 - 80 - 80 - 20 - 20 - 4) / 2
+    }
+  },
+  filters: {
+    secrecyMobile(mobile) {
+      mobile = String(mobile)
+      if (!/\d{11}/.test(mobile)) {
+        return mobile
       }
+      return mobile.replace(/(\d{3})(\d{4})(\d{4})/, '$1****$3')
+    }
+  },
+  activated() {
+    window.onresize = this.countTableHeight
+  },
+  mounted() {
+  },
+  methods: {
+    /** 窗口缩放时计算table高度 */
+    countTableHeight() {
+      this.tableHeight = (document.body.clientHeight - 80 - 44 - 80 - 80 - 20 - 20 - 4) / 2
+      /** 图表刷新 */
+      setTimeout(this.sesalChart.resize)
     }
   }
+}
 </script>
 
 <style type="text/scss" lang="scss" scoped>
-  .dashboard-container {
-    height: 100%;
-    /deep/ .el-card__body {
-      padding: 10px;
-    }
-    .goods-statistics {
-      display: flex;
-      flex-direction: column;
-      justify-content: space-around;
-      align-items: center;
-      a {
-        display: block;
-        margin: 0;
-        width: 75%;
-        button { width: 100% }
+.dashboard-container {
+  height: 100%;
+
+  /deep/ .el-card__body {
+    padding: 10px;
+  }
+
+  .goods-statistics {
+    display: flex;
+    flex-direction: column;
+    justify-content: space-around;
+    align-items: center;
+
+    a {
+      display: block;
+      margin: 0;
+      width: 75%;
+
+      button {
+        width: 100%
       }
     }
-    .goods-image {
-      width: 50px;
-      height: 50px;
-    }
   }
-  .el-row {
-    position: relative;
-    margin-bottom: 20px;
-  }
-  .el-col {
-    border-radius: 4px;
+
+  .goods-image {
+    width: 50px;
+    height: 50px;
   }
-  .goods-name {
-    color: #4183c4;
-    &:hover { color: #f42424 }
+}
+
+.el-row {
+  position: relative;
+  margin-bottom: 20px;
+}
+
+.el-col {
+  border-radius: 4px;
+}
+
+.goods-name {
+  color: #4183c4;
+
+  &:hover {
+    color: #f42424
   }
+}
 </style>

+ 2 - 1
manager-admin/src/views/goods/goodsEdit.vue

@@ -199,7 +199,8 @@ export default {
       goodsId: '',
 
       goodsForm: {
-        enabled: true
+        enabled: true,
+        good_type: '自产'
       },
       /** 临时存储商品相册信息 */
       goodsGalleryList: [],

+ 1 - 1
manager-admin/src/views/goods/goodsList.vue

@@ -27,7 +27,7 @@
     </div>
 
     <template slot="table-columns">
-      <el-table-column label="产品名称" width="250">
+      <el-table-column label="产品名称" width="250" show-overflow-tooltip>
         <template slot-scope="scope">
           <div class="goods-info">
             <div class="goods-image" style="margin: 0 20px;">

+ 1 - 1
manager-admin/src/views/goods/goodsListView.vue

@@ -26,7 +26,7 @@
     </div>
 
     <template slot="table-columns">
-      <el-table-column label="产品名称" width="220">
+      <el-table-column label="产品名称" width="220" show-overflow-tooltip>
         <template slot-scope="scope">
           <div class="goods-info">
             <div class="goods-image" style="margin: 0 20px;">

+ 1 - 0
manager-admin/src/views/pjOrder/Edit.vue

@@ -153,6 +153,7 @@
                   <el-option label="独立局域网" value="独立局域网"/>
                   <el-option label="非独立局域网" value="非独立局域网"/>
                   <el-option label="公网" value="公网"/>
+                  <el-option label="客户私有云" value="客户私有云"/>
                 </el-select>
               </el-form-item>
             </el-col>

+ 23 - 1
manager-admin/src/views/pjOrder/Items.vue

@@ -28,6 +28,13 @@
                 <el-option value="外购"></el-option>
                 <el-option value="自产"></el-option>
               </el-select>
+              <el-select v-model="selectVal" style="width: 200px;" clearable multiple filterable allow-create
+                         placeholder="选择生产状态" @change="changeProduceStatus">
+                <el-option value="未填写"></el-option>
+                <el-option value="采购原料中"></el-option>
+                <el-option value="生产中"></el-option>
+                <el-option value="完成"></el-option>
+              </el-select>
             </div>
             <el-button @click="sousuo">搜索</el-button>
             <!--              <el-input v-model="params.keyword" placeholder="输入项目搜索" size="mini" clearable />-->
@@ -184,7 +191,8 @@ export default {
         type: 1,
         good_id: 1
       },
-      myTitle: ''
+      myTitle: '',
+      selectVal: null
     }
   },
   mounted() {
@@ -320,6 +328,17 @@ export default {
       this.params2.good_id = row.good_id
       this.GET_List2()
       this.drawerShow = true
+    },
+    changeProduceStatus(e) {
+      if (e) {
+        let list = e.join(',')
+        console.log('---', list)
+        this.params.produce_status = list.replace('未填写', '')
+      } else {
+        delete this.params.produce_status
+      }
+      this.GET_List()
+      console.log('========', e)
     }
   }
 }
@@ -362,4 +381,7 @@ export default {
     }
   }
 }
+.el-select {
+  width: 130px;
+}
 </style>

+ 3 - 3
manager-admin/src/views/pjOrder/List.vue

@@ -30,7 +30,7 @@
           <el-tag>{{scope.row.order_no}}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="状态" width="130">
+      <el-table-column label="状态" width="130" prop="status" sortable>
         <template slot-scope="scope">
           <el-tag type="info" v-if="scope.row.status === 0">默认</el-tag>
           <el-tag type="warning" v-if="scope.row.status === 1">技术跟进</el-tag>
@@ -42,9 +42,9 @@
         </template>
       </el-table-column>
       <el-table-column label="创建时间" :formatter="MixinUnixToDate" prop="create_time" sortable width="160"></el-table-column>
-      <el-table-column label="项目名称" prop="name" show-overflow-tooltip min-width="140"></el-table-column>
+      <el-table-column label="项目名称" prop="name" show-overflow-tooltip min-width="140" sortable></el-table-column>
       <el-table-column label="类型" prop="type"></el-table-column>
-      <el-table-column label="销售" prop="sales"></el-table-column>
+      <el-table-column label="销售" prop="sales" sortable></el-table-column>
       <el-table-column label="规模" prop="scale"></el-table-column>
       <el-table-column label="要求发货日期" :formatter="MixinUnixToDay" prop="ship_date_required" sortable width="160"></el-table-column>
       <el-table-column label="金额" width="150" sortable>

+ 11 - 1
manager-admin/src/views/pjOrder/OrderItems.vue

@@ -26,7 +26,8 @@
                     <div>产品编码:{{ item.no }}</div>
                     <div>产品类型:{{ item.good_type }}</div>
                     <div>生产周期:{{ item.produce_day }}天</div>
-                    <div>数量:{{item.qty}}</div>
+                    <div v-if="boolFounder">数量:<el-input-number v-model="item.qty"/><el-button @click="handleSave(item)">保存</el-button></div>
+                    <div v-else>数量:{{item.qty}}</div>
                     <div>价格:{{item.price}}</div>
                   </div>
                 </div>
@@ -434,6 +435,15 @@ export default {
         this.addonDevice = this.listData.filter(p => !p.type_base)
       })
     },
+    handleSave(item) {
+      if (!this.boolFounder) {
+        this.$message.error('您没有权限!')
+        return
+      }
+      API_orderItems.editModel(item).then(res => {
+        this.$message.success('保存成功!')
+      })
+    },
     handleTechSave(item) {
       const adminUser = JSON.parse(Storage.getItem('admin_user'))
       item.tech_user = adminUser.uid

+ 1 - 1
manager-admin/src/views/pjOrder/Receipt.vue

@@ -32,7 +32,7 @@
           <el-tag type="success" v-else>正常</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="操作" width="170" fixed="right" v-if="boolFounder || permissions.filter(p => p === 'pjReceiptAction').length > 0">
+      <el-table-column label="操作" width="180" fixed="right" v-if="boolFounder || permissions.filter(p => p === 'pjReceiptAction').length > 0">
         <template slot-scope="scope">
           <el-button
             size="mini"