Эх сурвалжийг харах

任务单列表:添加字段、物料清单

chris 1 жил өмнө
parent
commit
2cb678fc99

+ 31 - 9
src/views/modules/order/order-detail.vue

@@ -37,7 +37,11 @@
       <e-desc title="物料清单明细">
         <el-table
           :data="productDetails"
+          row-key="productId"
           border
+          :indent='20'
+          lazy
+          :load="loadingData"
           style="width: 100%;">
           <el-table-column
             label="序号"
@@ -48,7 +52,7 @@
           <el-table-column
             prop="productName"
             header-align="center"
-            align="center"
+            align="left"
             width="160"
             :show-tooltip-when-overflow="true"
             label="物料名称">
@@ -162,10 +166,7 @@
             :show-tooltip-when-overflow="true"
             label="技术文件">
             <template slot-scope="scope">
-              <div v-for="(item, index) in scope.row.attachList" style="display: inline">
-                <span v-if="index > 0">,</span>
-                <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
-              </div>
+              <el-button :disabled="!scope.row.attachList || scope.row.attachList.length === 0" type="text" size="small" @click="attachDetails(scope.row)">查看</el-button>
             </template>
           </el-table-column>
           <el-table-column
@@ -297,7 +298,8 @@
     </span>
     <!-- 文件预览 -->
     <preview-component v-if="previewVisible" ref="preview"/>
-    <product-draw-detail v-if="drawVisible" ref="drawDetail" @onChose="onChose"/>
+    <product-draw-detail-dialog v-if="drawVisible" ref="drawDetail"/>
+    <attach-detail-dialog v-if="attachVisible" ref="attachDetail"/>
   </div>
 </template>
 
@@ -306,14 +308,17 @@
   import EDescItem from '../common/e-desc-item'
   import { dealStepData, dealStepLogs } from '@/api/util'
   import { getOrderDetail } from '@/api/sale'
+  import { getChildren } from '@/api/product'
   import uploadComponent from '../common/upload-component'
   import ApproveComponent from '../common/approve-component'
   import PreviewComponent from '@/views/modules/common/preview-component'
-  import ProductDrawDetail from '@/views/modules/tech/product-draw-detail'
+  import ProductDrawDetailDialog from '@/views/modules/tech/product-draw-detail-dialog'
+  import AttachDetailDialog from '@/views/modules/common/attach-detail-dialog'
 export default {
     name: 'order-detail',
     components: {
-      ProductDrawDetail,
+      AttachDetailDialog,
+      ProductDrawDetailDialog,
       PreviewComponent,
       EDesc,
       EDescItem,
@@ -332,7 +337,8 @@ export default {
         activeNo: 0,
         stepList: [],
         logList: [],
-        drawVisible: false
+        drawVisible: false,
+        attachVisible: false
       }
     },
     methods: {
@@ -404,6 +410,22 @@ export default {
         this.$nextTick(() => {
           this.$refs.preview.init(fileName, url)
         })
+      },
+      loadingData (row, treeNode, resolve) {
+        getChildren(row.productId).then(({data}) => {
+          if (data && data.code === '200') {
+            resolve(data.data)
+          } else {
+            this.$message.error(data.msg)
+          }
+        })
+      },
+      // 物料技术文件
+      attachDetails (row) {
+        this.attachVisible = true
+        this.$nextTick(() => {
+          this.$refs.attachDetail.init(row.attachList)
+        })
       }
     }
   }

+ 31 - 31
src/views/modules/order/order.vue

@@ -56,6 +56,37 @@
           :show-tooltip-when-overflow="true"
           label="任务单编码">
         </el-table-column>
+        <el-table-column
+          prop="productName"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="物料名称">
+        </el-table-column>
+        <el-table-column
+          prop="mapNumber"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="主图号">
+        </el-table-column>
+        <el-table-column
+          prop="productSpec"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="物料规格">
+        </el-table-column>
+        <el-table-column
+          prop="cnt"
+          header-align="center"
+          align="center"
+          min-width="80"
+          label="单套数量">
+        </el-table-column>
         <el-table-column
           prop="customerName"
           header-align="center"
@@ -120,37 +151,6 @@
           min-width="160"
           label="任务单完成时间">
         </el-table-column>
-        <el-table-column
-          prop="productName"
-          header-align="center"
-          align="center"
-          min-width="160"
-          :show-tooltip-when-overflow="true"
-          label="物料名称">
-        </el-table-column>
-        <el-table-column
-          prop="mapNumber"
-          header-align="center"
-          align="center"
-          min-width="160"
-          :show-tooltip-when-overflow="true"
-          label="主图号">
-        </el-table-column>
-        <el-table-column
-          prop="cnt"
-          header-align="center"
-          align="center"
-          min-width="80"
-          label="单套数量">
-        </el-table-column>
-        <el-table-column
-          prop="productSpec"
-          header-align="center"
-          align="center"
-          min-width="160"
-          :show-tooltip-when-overflow="true"
-          label="物料规格">
-        </el-table-column>
         <el-table-column
           prop="notes"
           header-align="center"

+ 75 - 0
src/views/modules/tech/product-draw-detail-dialog.vue

@@ -0,0 +1,75 @@
+<template>
+  <div>
+    <el-dialog
+      title="图纸详情"
+      width="70%"
+      :close-on-click-modal="false"
+      :visible.sync="visible"
+    >
+<!--      <div class="my-title">图纸详情</div>-->
+      <div>
+        <template v-for="(item, index) in dataList">
+          <e-desc :title="item.drawingName" column="3" style="margin-bottom: 20px">
+            <e-desc-item label="附件" span="2">
+              <div v-for="(item, index) in item.attachList" style="display: inline">
+                <span v-if="index > 0">,</span>
+                <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+              </div>
+            </e-desc-item>
+          </e-desc>
+        </template>
+        <div></div>
+      </div>
+      <span slot="footer">
+        <el-button @click="onChose">返回</el-button>
+      </span>
+    </el-dialog>
+    <!-- 文件预览 -->
+    <preview-component v-if="previewVisible" ref="preview"/>
+  </div>
+</template>
+
+<script>
+  import EDesc from '../common/e-desc'
+  import EDescItem from '../common/e-desc-item'
+  import { downloadUrl } from '@/api/file'
+  import UploadComponent from '../common/upload-component'
+  import PreviewComponent from '../common/preview-component'
+  export default {
+    name: 'product-draw-detail-dialog',
+    components: {
+      PreviewComponent,
+      UploadComponent,
+      EDesc,
+      EDescItem
+    },
+    data () {
+      return {
+        visible: false,
+        previewVisible: false,
+        dataList: [],
+        downloadUrl: downloadUrl
+      }
+    },
+    methods: {
+      onChose () {
+        this.visible = false
+      },
+      async init (drawList) {
+        this.visible = true
+        this.dataList = drawList
+      },
+      // 预览
+      previewFile (fileName, url) {
+        this.previewVisible = true
+        this.$nextTick(() => {
+          this.$refs.preview.init(fileName, url)
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>