Explorar o código

1、报损记录;2、移交记录;3、代码合并

chris %!s(int64=3) %!d(string=hai) anos
pai
achega
2320a66a2b

+ 17 - 0
src/api/production.js

@@ -136,3 +136,20 @@ export function updateProdProductionMould (data) {
     data
   })
 }
+
+// 损坏记录列表
+export function getDamageList (params) {
+  return request({
+    url: request.adornUrl(`/biz-service/damage/list`),
+    method: 'get',
+    params: params
+  })
+}
+
+// 损坏记录详情
+export function getDamageDetail (mouldId) {
+  return request({
+    url: request.adornUrl(`/biz-service/damage/info/${mouldId}`),
+    method: 'get'
+  })
+}

+ 17 - 0
src/api/task.js

@@ -53,3 +53,20 @@ export function damageTask (data) {
     data
   })
 }
+
+// 移交记录列表信息
+export function getTransferList (params) {
+  return request({
+    url: request.adornUrl(`/biz-service/transfer/list`),
+    method: 'get',
+    params: params
+  })
+}
+
+// 移交记录详情
+export function getTransferDetail (id) {
+  return request({
+    url: request.adornUrl(`/biz-service/transfer/info/${id}`),
+    method: 'get'
+  })
+}

+ 1 - 1
src/components/work-flow/home.vue

@@ -175,7 +175,7 @@ export default {
     }
   },
   mounted () {
-    console.log("mounted")
+    console.log('mounted')
     this.jsPlumb = jsPlumb.getInstance()
     this.initNodeTypeObj()
     this.initNode()

+ 1 - 0
src/icons/svg/icon-baosun.svg

@@ -0,0 +1 @@
+<svg t="1640673775646" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1781" width="200" height="200"><path d="M909 187.8H690.8v-46.5c0-23.6-18.7-43.1-41.9-43.1H375.1c-23.2 0-41.9 19.5-41.9 43.1v46.5H115c-9.5 0-17.4 8.3-17.8 18.3l22 173.8c0 10 7.9 18.3 17.8 18.3h42.7l26.5 493.2c0 20.3 16.2 36.5 35.7 36.5H782c19.9 0 35.7-16.6 35.7-36.9l26.5-493.2H887c9.5 0 17.4-7.9 17.8-17.8v-1l22-173.4c-0.4-9.9-8.3-17.8-17.8-17.8zM655.9 765.6c-19.1 11.2-44.4 6.6-58.5-9.5L512 655.3l-86.7 101.2c-16.6 19.1-45.2 20.7-64.3 3.7l-0.4-0.4c-14.5-13.3-16.2-36.1-3.7-50.6l100.8-117.8-100.4-116.6c-13.7-16.2-12-39.4 4.6-53.1 18.7-15.3 48.1-12.4 63.1 5l86.7 101.2 90-104.9c14.5-17 40.7-18.7 57.7-3.3l4.1 3.7c14.5 13.3 16.2 36.1 3.7 50.6L565.9 591.4l100.8 117.8c15.4 18.3 10.8 44-10.8 56.4z m0 0" p-id="1782"></path></svg>

+ 1 - 0
src/icons/svg/icon-yijiaojilu.svg

@@ -0,0 +1 @@
+<svg t="1640673615193" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1578" width="200" height="200"><path d="M603.886933 0c17.6128 0 32.221867 5.3248 45.056 15.837867l6.280534 5.666133 222.890666 220.842667c13.038933 11.946667 20.616533 26.624 22.528 43.690666l0.477867 8.874667v538.2144c0 73.045333-54.613333 130.798933-126.702933 135.850667l-10.4448 0.4096H205.482667C131.959467 969.386667 73.728 915.2512 68.608 843.502933L68.266667 833.1264V135.714133C68.266667 62.6688 122.88 5.461333 194.9696 0.341333L205.482667 0h398.472533zM567.296 81.851733L205.4144 81.92c-29.696 0-51.6096 19.387733-54.818133 46.830933l-0.4096 6.9632v697.412267c0 28.945067 19.8656 50.722133 47.991466 53.930667L205.482667 887.466667h558.557866c29.559467 0 51.6096-19.6608 54.818134-47.240534l0.4096-7.099733-0.068267-495.479467H669.764267a102.4 102.4 0 0 1-101.9904-92.501333l-0.4096-9.8304-0.068267-153.463467zM641.706667 614.4a40.96 40.96 0 0 1 22.596266 75.093333l-82.1248 82.056534a40.96 40.96 0 0 1-57.9584-57.9584l17.339734-17.271467H314.026667a40.96 40.96 0 0 1 0-81.92h327.68zM431.5136 402.6368a40.96 40.96 0 0 1 0 57.9584L414.173867 477.866667H641.706667a40.96 40.96 0 0 1 0 81.92H314.026667a40.96 40.96 0 0 1-22.596267-75.093334l82.1248-82.056533a40.96 40.96 0 0 1 57.9584 0zM635.562667 117.418667v117.9648a34.133333 34.133333 0 0 0 27.989333 33.5872l6.144 0.546133 119.330133-0.068267L635.562667 117.3504z" p-id="1579"></path></svg>

+ 67 - 0
src/views/modules/production/damage-details.vue

@@ -0,0 +1,67 @@
+<template>
+  <el-dialog
+    title="查看"
+    width="70%"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <div style="margin-left: 20px;margin-right: 20px">
+      <e-desc title="基本信息" column="3">
+        <e-desc-item label="产品名称">{{dataForm.productName}}</e-desc-item>
+        <e-desc-item label="产品编号" span="2">{{dataForm.prodCode}}</e-desc-item>
+
+        <e-desc-item label="订单编码">{{dataForm.orderCode}}</e-desc-item>
+        <e-desc-item label="工艺名称" span="2">{{dataForm.techName}}</e-desc-item>
+
+        <e-desc-item label="报损工序">{{dataForm.nodeName}}</e-desc-item>
+        <e-desc-item label="报损人">{{dataForm.liableUserName}}</e-desc-item>
+        <e-desc-item label="损坏类型">{{dataForm.damageType&&Number(dataForm.damageType)===1?'操作损坏':'检验损坏'}}</e-desc-item>
+
+        <e-desc-item label="损坏时间">{{dataForm.createTime}}</e-desc-item>
+        <e-desc-item label="损坏原因" span="2">{{dataForm.damageReason}}</e-desc-item>
+
+        <e-desc-item label="报损说明" span="3"></e-desc-item>
+      </e-desc>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">返回</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import {getDamageDetail} from '@/api/production'
+  import EDesc from '../common/e-desc'
+  import EDescItem from '../common/e-desc-item'
+  export default {
+    name: 'damage-details',
+    components: {
+      EDesc, EDescItem
+    },
+    data () {
+      return {
+        visible: false,
+        id: 0,
+        dataForm: {}
+      }
+    },
+    methods: {
+      async init (id) {
+        this.visible = true
+        this.id = id || 0
+        this.dataForm = {}
+        this.getDetails()
+      },
+      getDetails () {
+        getDamageDetail(this.id).then(({data}) => {
+          if (data && data.code === '200' && data.data) {
+            this.dataForm = data.data
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 216 - 0
src/views/modules/production/damage.vue

@@ -0,0 +1,216 @@
+<!-- 报损记录 -->
+<template>
+  <div>
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryPage()">
+      <el-form-item label="产品名称">
+        <el-input v-model="dataForm.name" placeholder="产品名称" clearable/>
+      </el-form-item>
+      <el-form-item label="订单编码">
+        <el-input v-model="dataForm.orderCode" placeholder="订单编码" clearable/>
+      </el-form-item>
+      <el-form-item label="产品编号">
+        <el-input v-model="dataForm.prodCode" placeholder="产品编号" clearable/>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="queryPage()">查询</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      style="width: 100%;">
+      <el-table-column
+        label="序号"
+        type="index"
+        width="50"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        prop="productName"
+        header-align="center"
+        align="center"
+        width="160"
+        :show-overflow-tooltip="true"
+        label="产品名称">
+      </el-table-column>
+      <el-table-column
+        prop="prodCode"
+        header-align="center"
+        align="center"
+        width="160"
+        :show-overflow-tooltip="true"
+        label="产品编号">
+      </el-table-column>
+      <el-table-column
+        prop="orderCode"
+        header-align="center"
+        align="center"
+        width="160"
+        :show-overflow-tooltip="true"
+        label="订单编码">
+      </el-table-column>
+      <el-table-column
+        prop="techName"
+        header-align="center"
+        align="center"
+        width="160"
+        :show-overflow-tooltip="true"
+        label="工艺名称">
+      </el-table-column>
+      <el-table-column
+        prop="nodeName"
+        header-align="center"
+        align="center"
+        width="160"
+        :show-overflow-tooltip="true"
+        label="报损工序">
+      </el-table-column>
+      <el-table-column
+        prop="liableUserName"
+        header-align="center"
+        align="center"
+        width="120"
+        :show-overflow-tooltip="true"
+        label="报损人">
+      </el-table-column>
+      <el-table-column
+        prop="damageReason"
+        header-align="center"
+        align="center"
+        width="120"
+        :show-overflow-tooltip="true"
+        label="损坏原因">
+      </el-table-column>
+      <el-table-column
+        prop="damageType"
+        header-align="center"
+        align="center"
+        :formatter="formatDamageType"
+        label="损坏类型">
+      </el-table-column>
+      <el-table-column
+        prop="liableUserName"
+        header-align="center"
+        align="center"
+        min-width="160"
+        :show-overflow-tooltip="true"
+        label="报损说明">
+      </el-table-column>
+      <el-table-column
+        prop="-"
+        header-align="center"
+        align="center"
+        min-width="160"
+        label="报损时间">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="140"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button type="text" size="small" @click="detailHandle(scope.row.recordId)">查看</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="pageIndex"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="pageSize"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <detail v-if="detailVisible" ref="detail"/>
+  </div>
+</template>
+
+<script>
+  import Detail from './damage-details'
+  import { getDamageList } from '@/api/production'
+  export default {
+    name: 'damage',
+    components: {Detail},
+    data () {
+      return {
+        detailVisible: false,
+        dataForm: {},
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: []
+      }
+    },
+    created () {
+      this.getDataList()
+    },
+    methods: {
+      // 查询
+      queryPage () {
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.addOrUpdateVisible = false
+        // 接口调用
+        let params = {
+          'current': this.pageIndex,
+          'size': this.pageSize,
+          'productName': this.dataForm.name ? this.dataForm.name : null,
+          'orderCode': this.dataForm.orderCode ? this.dataForm.orderCode : null,
+          'prodCode': this.dataForm.prodCode ? this.dataForm.prodCode : null
+        }
+        getDamageList(params).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataList = data.data.records
+            this.totalPage = Number(data.data.total)
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 损坏类型
+      formatDamageType (row) {
+        if (!row.damageType) return ''
+        if (Number(row.damageType) === 1) return '操作损坏'
+        if (Number(row.damageType) === 2) return '检验损坏'
+        return ''
+      },
+      // 详情
+      detailHandle (id) {
+        this.detailVisible = true
+        this.$nextTick(() => {
+          this.$refs.detail.init(id)
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 3 - 3
src/views/modules/tech/crafts-detail.vue

@@ -93,7 +93,7 @@ export default {
     }
   },
   destroyed () {
-    console.log("destroyed")
+    console.log('destroyed')
   },
   methods: {
     async init (id, businessType, productName) {
@@ -156,8 +156,8 @@ export default {
       this.$emit('approveFinished')
     },
     handleClose () {
-      //this.visible = false
-      this.$emit("closeDialogEvent")
+      // this.visible = false
+      this.$emit('closeDialogEvent')
     }
   }
 }

+ 1 - 1
src/views/modules/warehouse/template.vue → src/views/modules/warehouse/template-list.vue

@@ -122,7 +122,7 @@
   import Detail from './template-detail'
   import { getTemplateList, updateTemplate } from '@/api/warehouse'
   export default {
-    name: 'stock-order',
+    name: 'template-list',
     components: {templateAdd, Detail},
     data () {
       return {

+ 64 - 0
src/views/modules/works/handover-records-details.vue

@@ -0,0 +1,64 @@
+<template>
+  <el-dialog
+    title="查看"
+    width="70%"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <div style="margin-left: 20px;margin-right: 20px">
+      <e-desc title="基本信息" column="3">
+        <e-desc-item label="产品名称">{{dataForm.productName}}</e-desc-item>
+        <e-desc-item label="产品编号" span="2">{{dataForm.prodCode}}</e-desc-item>
+
+        <e-desc-item label="工艺名称">{{dataForm.techName}}</e-desc-item>
+        <e-desc-item label="工序名称" span="2">{{dataForm.nodeName}}</e-desc-item>
+
+        <e-desc-item label="移交发起人">{{dataForm.creatorName}}</e-desc-item>
+        <e-desc-item label="移交接收人">{{dataForm.transferUserName}}</e-desc-item>
+        <e-desc-item label="移交时间">{{dataForm.createTime}}</e-desc-item>
+
+        <e-desc-item label="移交说明" span="3">{{dataForm.transferExplain}}</e-desc-item>
+      </e-desc>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">返回</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import {getTransferDetail} from '@/api/task'
+  import EDesc from '../common/e-desc'
+  import EDescItem from '../common/e-desc-item'
+  export default {
+    name: 'handover-records-details',
+    components: {
+      EDesc, EDescItem
+    },
+    data () {
+      return {
+        visible: false,
+        id: 0,
+        dataForm: {}
+      }
+    },
+    methods: {
+      async init (id) {
+        this.visible = true
+        this.id = id || 0
+        this.dataForm = {}
+        this.getDetails()
+      },
+      getDetails () {
+        getTransferDetail(this.id).then(({data}) => {
+          if (data && data.code === '200' && data.data) {
+            this.dataForm = data.data
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 190 - 0
src/views/modules/works/handover-records.vue

@@ -0,0 +1,190 @@
+<!-- 移交记录 -->
+<template>
+    <div>
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryPage()">
+        <el-form-item label="名称">
+          <el-input v-model="dataForm.name" placeholder="名称" clearable/>
+        </el-form-item>
+        <el-form-item label="产品编号">
+          <el-input v-model="dataForm.code" placeholder="产品编号" clearable/>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryPage()">查询</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="productName"
+          header-align="center"
+          align="center"
+          width="160"
+          :show-overflow-tooltip="true"
+          label="产品名称">
+        </el-table-column>
+        <el-table-column
+          prop="prodCode"
+          header-align="center"
+          align="center"
+          width="160"
+          :show-overflow-tooltip="true"
+          label="产品编号">
+        </el-table-column>
+        <el-table-column
+          prop="techName"
+          header-align="center"
+          align="center"
+          width="160"
+          :show-overflow-tooltip="true"
+          label="工艺名称">
+        </el-table-column>
+        <el-table-column
+          prop="nodeName"
+          header-align="center"
+          align="center"
+          width="160"
+          :show-overflow-tooltip="true"
+          label="工序名称">
+        </el-table-column>
+        <el-table-column
+          prop="transferUserName"
+          header-align="center"
+          align="center"
+          width="120"
+          :show-overflow-tooltip="true"
+          label="移交接收人">
+        </el-table-column>
+        <el-table-column
+          prop="creatorName"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="移交发起人">
+        </el-table-column>
+        <el-table-column
+          prop="transferExplain"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="移交说明">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="移交时间">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="140"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button type="text" size="small" @click="detailHandle(scope.row.recordId)">查看</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+      <detail v-if="detailVisible" ref="detail"/>
+    </div>
+</template>
+
+<script>
+  import {getTransferList} from '@/api/task'
+  import Detail from './handover-records-details'
+  export default {
+    name: 'handover-records',
+    components: {Detail},
+    data () {
+      return {
+        detailVisible: false,
+        dataForm: {},
+        dataList: [],
+        pageIndex: 1,
+        pageSize: 10,
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: []
+      }
+    },
+    created () {
+      this.getDataList()
+    },
+    methods: {
+      // 查询
+      queryPage () {
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.addOrUpdateVisible = false
+        // 接口调用
+        let params = {
+          'current': this.pageIndex,
+          'size': this.pageSize,
+          'productName': this.dataForm.name ? this.dataForm.name : null,
+          'prodCode': this.dataForm.code ? this.dataForm.code : null
+        }
+        getTransferList(params).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataList = data.data.records
+            this.totalPage = Number(data.data.total)
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 详情
+      detailHandle (id) {
+        this.detailVisible = true
+        this.$nextTick(() => {
+          this.$refs.detail.init(id)
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 2 - 2
src/views/modules/works/work.vue

@@ -185,10 +185,10 @@
 <script>
 import { getTaskList, startTask, transferTask, completeTask, checkTask, damageTask } from '@/api/task'
 import { workTypeMasterList } from '@/api/worktype'
-import template from '../warehouse/template.vue'
+import templateList from '../warehouse/template-list'
 import { downloadUrl } from '@/api/file'
 export default {
-  components: { template },
+  components: { templateList },
   name: 'work',
   data () {
     return {