wenningning 6 mesi fa
parent
commit
88248e1352

+ 6 - 0
manager-admin/src/views/dashboard/index.vue

@@ -11,6 +11,12 @@
     <el-divider></el-divider>
     <el-card>
       <div>
+        <b>20241227-wnn</b>
+        <p>- 生产备注可以叠加</p>
+        <p>- 去除基础产品必选相关逻辑;</p>
+        <p>- 产品订单加上项目、产品名称、生产编码排序</p>
+        <p>- 针对项目金额增加权限控制,只有管理员、销售、财务才能看到项目价额;</p>
+        <p>- 订单产品数目统计;</p>
         <b>20241226-wnn</b>
         <p>- 生产备注可以叠加</p>
         <p>- 订单产品列表加上产品类型搜索</p>

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

@@ -16,6 +16,7 @@
                 <el-option label="服务器版" value="服务器版"/>
                 <el-option label="云服务器版" value="云服务器版"/>
                 <el-option label="无服务版" value="无服务版"/>
+                <el-option label="样品机借机" value="样品机借机"/>
               </el-select>
             </el-form-item>
           </el-col>

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

@@ -18,6 +18,7 @@
                     <el-option label="服务器版" value="服务器版"/>
                     <el-option label="云服务器版" value="云服务器版"/>
                     <el-option label="无服务版" value="无服务版"/>
+                    <el-option label="样品机借机" value="样品机借机"/>
                   </el-select>
                 </el-form-item>
               </el-col>

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

@@ -73,7 +73,7 @@
               </template>
               {{ modelForm.ship_date_required | unixToDate('yyyy-MM-dd') }}
             </el-descriptions-item>
-            <el-descriptions-item>
+            <el-descriptions-item v-if="boolFounder || permissions.filter(p => p === 'draftEdit' || p === 'pjReceipt').length > 0">
               <template slot="label">
                 项目金额
               </template>

+ 62 - 4
manager-admin/src/views/pjOrder/Items.vue

@@ -8,6 +8,8 @@
         :tableData="tableData.data"
         :loading="loading"
         tooltip-effect="dark"
+        show-summary
+        :summary-method="getSummaries"
         @selection-change="handleSelectionChange"
       >
         <div slot="toolbar" class="inner-toolbar">
@@ -47,12 +49,12 @@
             width="55">
           </el-table-column>
           <!--            <el-table-column label="创建时间" :formatter="MixinUnixToDate" prop="create_time" sortable width="160"></el-table-column>-->
-          <el-table-column v-if="params.type !== '2'" label="项目" min-width="180" show-overflow-tooltip>
+          <el-table-column v-if="params.type !== '2'" label="项目" min-width="180" show-overflow-tooltip sortable>
             <template slot-scope="scope">
               <el-button round size="mini" @click="gotoOrder(scope.row.order_no)">{{scope.row.order_name}}</el-button>
             </template>
           </el-table-column>
-          <el-table-column label="产品名称" min-width="220" show-overflow-tooltip>
+          <el-table-column label="产品名称" min-width="220" prop="name" show-overflow-tooltip sortable>
             <template slot-scope="scope">
               <div class="goods-info">
                 <div class="goods-image" style="margin: 0 20px;">
@@ -66,7 +68,7 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column label="生产编码" prop="no" width="130">
+          <el-table-column label="生产编码" prop="no" width="130" sortable>
             <template slot-scope="scope">
               <el-button round size="mini" @click="gotoGoods(scope.row.good_id)">{{ scope.row.no }}</el-button>
             </template>
@@ -338,7 +340,63 @@ export default {
         delete this.params.produce_status
       }
       this.GET_List()
-      console.log('========', e)
+    },
+    getSummaries(param) {
+      const { columns, data } = param
+      const sums = []
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '总数'
+          return
+        }
+        if (column.label === '需产数量') {
+          let qty = 0
+          let producedQty = 0
+          if (this.params.type !== '2') {
+            qty = data.map(item => Number(item['qty']))
+            producedQty = data.map(item => Number(item['produced_qty']))
+          } else {
+            qty = data.map(item => Number(item['count1']))
+            producedQty = data.map(item => Number(item['count2']))
+          }
+          const qtyCount = qty.reduce((prev, curr) => {
+            const value = Number(curr)
+            if (!isNaN(value)) {
+              return prev + curr
+            } else {
+              return prev
+            }
+          }, 0)
+          const producedCount = producedQty.reduce((prev, curr) => {
+            const value = Number(curr)
+            if (!isNaN(value)) {
+              return prev + curr
+            } else {
+              return prev
+            }
+          }, 0)
+          sums[index] = qtyCount - producedCount
+          sums[index] += ' 件'
+        } else if (column.property === 'produced_qty' || column.property === 'qty' || column.property === 'shipped_qty' || column.property === 'count1' || column.property === 'count2') {
+          const values = data.map(item => Number(item[column.property]))
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr)
+              if (!isNaN(value)) {
+                return prev + curr
+              } else {
+                return prev
+              }
+            }, 0)
+            sums[index] += ' 件'
+          } else {
+            sums[index] = 'N/A'
+          }
+        } else {
+          sums[index] = 'N/A'
+        }
+      })
+      return sums
     }
   }
 }

+ 7 - 1
manager-admin/src/views/pjOrder/List.vue

@@ -47,7 +47,7 @@
       <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>
+      <el-table-column v-if="boolFounder || permissions.filter(p => p === 'draftEdit' || p === 'pjReceipt').length > 0" label="金额" width="150" sortable>
         <template slot-scope="scope">
           <el-tag v-if="scope.row.amount > 1000000" type="danger">{{ scope.row.amount | unitPrice('¥') }}</el-tag>
           <el-tag v-else-if="scope.row.amount > 500000" type="warning">{{ scope.row.amount | unitPrice('¥') }}</el-tag>
@@ -82,11 +82,14 @@
 <script>
 import * as API_order from '@/api/pjOrder.js'
 import { Foundation } from '~/ui-utils'
+import Storage from '../../utils/storage'
 
 export default {
   name: 'pjOrderList',
   data() {
     return {
+      boolFounder: JSON.parse(Storage.getItem('admin_user')).founder === 1,
+      permissions: [],
       /** 列表loading状态 */
       loading: false,
 
@@ -107,6 +110,9 @@ export default {
     }
   },
   mounted() {
+    if (!this.boolFounder) {
+      this.permissions = JSON.parse(Storage.getItem('permissions'))
+    }
     this.GET_List()
   },
   activated() {

+ 2 - 2
manager-admin/src/views/pjOrder/OrderItems.vue

@@ -28,7 +28,7 @@
                     <div>生产周期:{{ item.produce_day }}天</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 v-if="boolFounder || permissions.filter(p => p === 'draftEdit' || p === 'pjReceipt').length > 0">价格:{{item.price}}</div>
                   </div>
                 </div>
                 <el-tooltip class="item" effect="dark" :content="item.sales_remark" placement="top">
@@ -346,7 +346,7 @@
             </template>
           </el-table-column>
           <el-table-column prop="shipped_qty" label="已发数量" width="100"></el-table-column>
-          <el-table-column prop="price" label="价格" width="100"></el-table-column>
+          <el-table-column v-if="boolFounder || permissions.filter(p => p === 'draftEdit' || p === 'pjReceipt').length > 0" prop="price" label="价格" width="100"></el-table-column>
           <el-table-column prop="sales_remark" show-overflow-tooltip label="销售备注"></el-table-column>
           <el-table-column prop="produced_remark" show-overflow-tooltip label="生产备注"></el-table-column>
         </el-table>