Browse Source

新增任务号字段和批次号列,优化任务单列表展示

chrislee 2 weeks ago
parent
commit
5f8a7b6cd2
2 changed files with 237 additions and 285 deletions
  1. 18 2
      src/views/modules/order/order.vue
  2. 219 283
      src/views/modules/tech/crafts-management.vue

+ 18 - 2
src/views/modules/order/order.vue

@@ -17,6 +17,9 @@
         <el-form-item label="合同编码">
           <el-input v-model="dataForm.contractNumber" placeholder="合同号" clearable></el-input>
         </el-form-item>
+        <el-form-item label="任务号">
+          <el-input v-model="dataForm.orderCode" placeholder="任务号" clearable></el-input>
+        </el-form-item>
         <el-form-item label="状态" prop="orderState">
           <el-select v-model="dataForm.orderState" remote placeholder="请选择">
             <el-option v-for="item in optionsOrderState" :key="item.code" :label="item.value" :value="item.code">
@@ -52,9 +55,15 @@
         <el-table-column prop="projectName" header-align="center" align="center" min-width="180"
           :show-tooltip-when-overflow="true" label="项目名称">
         </el-table-column>
+        <el-table-column prop="orderCode" header-align="center" align="center" min-width="140"
+          :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="batchNumber" 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>
@@ -188,7 +197,13 @@ export default {
       confirmVisible: false,
       noticeChangeAttachVisible: false,
       amountMaskSettingVisible: false,
-      dataForm: {},
+      dataForm: {
+        customerId: null,
+        contractNumber: null,
+        orderCode: null,
+        orderState: null,
+        createTime: null
+      },
       dataList: [],
       pageIndex: 1,
       pageSize: 10,
@@ -265,7 +280,8 @@ export default {
           ? this.dataForm.contractNumber
           : null,
         customerId: this.dataForm.customerId ? this.dataForm.customerId : null,
-        orderState: this.dataForm.orderState ? this.dataForm.orderState : null
+        orderState: this.dataForm.orderState ? this.dataForm.orderState : null,
+        orderCode: this.dataForm.orderCode ? this.dataForm.orderCode : null
       }
       getOrderList(params).then(({ data }) => {
         if (data && data.code === '200') {

+ 219 - 283
src/views/modules/tech/crafts-management.vue

@@ -1,31 +1,22 @@
 <!-- 工艺管理 -->
 <template>
-  <div class="order">
+  <div class="order" v-loading="pageLoading" element-loading-text="加载中...">
     <template v-if="!addOrUpdateVisible && !detailVisible">
       <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
         <el-form-item label="工艺名称">
-          <el-input v-model="dataForm.techName" clearable/>
+          <el-input v-model="dataForm.techName" clearable />
         </el-form-item>
         <el-form-item label="物料名称">
-          <el-input v-model="dataForm.productName" clearable/>
+          <el-input v-model="dataForm.productName" clearable />
         </el-form-item>
         <el-form-item label="状态">
-          <el-select
-            v-model="dataForm.state"
-            placeholder="请选择">
-          <el-option
-            v-for="item in optionsState"
-            :key="item.code"
-            :label="item.value"
-            :value="item.code">
-          </el-option>
-        </el-select>
+          <el-select v-model="dataForm.state" placeholder="请选择">
+            <el-option v-for="item in optionsState" :key="item.code" :label="item.value" :value="item.code">
+            </el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="创建日期">
-          <el-date-picker
-            v-model="dataForm.createTime"
-            value-format="yyyy-MM-dd"
-            type="date">
+          <el-date-picker v-model="dataForm.createTime" value-format="yyyy-MM-dd" type="date">
           </el-date-picker>
         </el-form-item>
         <el-form-item>
@@ -33,321 +24,266 @@
           <el-button v-if="isAuth('pro:technology:save')" type="primary" @click="addOrUpdateHandle(0)">新建工艺</el-button>
         </el-form-item>
       </el-form>
-      <el-table
-        :data="dataList"
-        border
-        v-loading="dataListLoading"
-        @selection-change="selectionChangeHandle"
+      <el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
         style="width: 100%;">
-        <el-table-column
-          label="序号"
-          type="index"
-          width="50"
-          align="center">
+        <el-table-column label="序号" type="index" width="50" align="center">
         </el-table-column>
-        <el-table-column
-          prop="techCode"
-          header-align="center"
-          align="center"
-          min-width="180"
-          :show-tooltip-when-overflow="true"
-          label="工艺编码">
+        <el-table-column prop="techCode" header-align="center" align="center" min-width="180"
+          :show-tooltip-when-overflow="true" label="工艺编码">
         </el-table-column>
-        <el-table-column
-          prop="techName"
-          header-align="center"
-          align="center"
-          min-width="180"
-          :show-overflow-tooltip="true"
-          label="工艺名称">
+        <el-table-column prop="techName" header-align="center" align="center" min-width="180"
+          :show-overflow-tooltip="true" label="工艺名称">
         </el-table-column>
-        <el-table-column
-          prop="techVersion"
-          header-align="center"
-          align="center"
-          min-width="120"
-          :show-tooltip-when-overflow="true"
-          label="工艺版本">
+        <el-table-column prop="techVersion" header-align="center" align="center" min-width="120"
+          :show-tooltip-when-overflow="true" label="工艺版本">
         </el-table-column>
-        <el-table-column
-          prop="productName"
-          header-align="center"
-          align="center"
-          min-width="140"
-          :show-tooltip-when-overflow="true"
-          label="物料名称">
+        <el-table-column prop="productName" header-align="center" align="center" min-width="140"
+          :show-tooltip-when-overflow="true" label="物料名称">
         </el-table-column>
-        <el-table-column
-          prop="createTime"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="创建时间">
+        <el-table-column prop="createTime" header-align="center" align="center" min-width="160" label="创建时间">
         </el-table-column>
-        <el-table-column
-          prop="updateTime"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="上次修改时间">
+        <el-table-column prop="updateTime" header-align="center" align="center" min-width="160" label="上次修改时间">
         </el-table-column>
-        <el-table-column
-          prop="creatorName"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="创建人">
+        <el-table-column prop="creatorName" header-align="center" align="center" min-width="160" label="创建人">
         </el-table-column>
-        <el-table-column
-          prop="state"
-          fixed="right"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="审批状态">
+        <el-table-column prop="state" fixed="right" header-align="center" align="center" min-width="160" label="审批状态">
           <template slot-scope="scope">
-            <span>{{ convertState(scope.row.state)}}</span>
+            <span>{{ convertState(scope.row.state) }}</span>
           </template>
         </el-table-column>
-        <el-table-column
-          prop="currentApproverName"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="当前审批人">
+        <el-table-column prop="currentApproverName" header-align="center" align="center" min-width="160" label="当前审批人">
         </el-table-column>
-        <el-table-column
-          prop="notes"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="备注">
+        <el-table-column prop="notes" header-align="center" align="center" min-width="160" label="备注">
         </el-table-column>
-        <el-table-column
-          prop="techState"
-          fixed="right"
-          header-align="center"
-          align="center"
-          min-width="100"
+        <el-table-column prop="techState" fixed="right" header-align="center" align="center" min-width="100"
           label="当前状态">
           <template slot-scope="scope">
-            <span>{{ scope.row.techState == -1 ? '停用' : '启用'  }}</span>
+            <span>{{ scope.row.techState == -1 ? '停用' : '启用' }}</span>
           </template>
         </el-table-column>
-        <el-table-column
-          header-align="center"
-          fixed="right"
-          align="center"
-          width="250"
-          label="操作">
+        <el-table-column header-align="center" fixed="right" align="center" width="250" label="操作">
           <template slot-scope="scope">
-            <el-button v-if="isAuth('pro:technology:revoke') && scope.row.state === '1'" type="text" size="small" @click="revokeHandle(scope.row.techId)">撤销</el-button>
-            <el-button v-if="isAuth('pro:technology:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.techId)">编辑</el-button>
-            <el-button v-if="isAuth('pro:technology:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.techId, true)">复制</el-button>
-            <el-button v-if="isAuth('pro:technology:update') && scope.row.techState === '-1' && scope.row.state === '3'" type="text" size="small" @click="changeStateHandle(scope.row.techId, 0)">启用</el-button>
-            <el-button v-if="isAuth('pro:technology:update') && scope.row.techState === '0'" type="text" size="small" @click="changeStateHandle(scope.row.techId, -1)">停用</el-button>
-            <el-button v-if="isAuth('pro:technology:info')" type="text" size="small" @click="detailHandle(scope.row.techId, scope.row.productName)">查看</el-button>
-            <el-button v-if="isAuth('pro:technology:generateInstruction') && Number(scope.row.isGenerate) === 0" type="text" size="small" @click="generate(scope.row.techId)">生成</el-button>
-            <el-button v-if="isAuth('pro:technology:save') && scope.row.state === '0'" type="text" size="small" @click="addOrUpdateHandle(scope.row.techId, false, true)">重新提交</el-button>
-            <el-button v-if="isAuth('pro:technology:delete')" style="color: red" type="text" size="small" @click="deleteHandle(scope.row.techId)">删除</el-button>
+            <el-button v-if="isAuth('pro:technology:revoke') && scope.row.state === '1'" type="text" size="small"
+              @click="revokeHandle(scope.row.techId)">撤销</el-button>
+            <el-button v-if="isAuth('pro:technology:update')" type="text" size="small"
+              @click="addOrUpdateHandle(scope.row.techId)">编辑</el-button>
+            <el-button v-if="isAuth('pro:technology:update')" type="text" size="small"
+              @click="addOrUpdateHandle(scope.row.techId, true)">复制</el-button>
+            <el-button v-if="isAuth('pro:technology:update') && scope.row.techState === '-1' && scope.row.state === '3'"
+              type="text" size="small" @click="changeStateHandle(scope.row.techId, 0)">启用</el-button>
+            <el-button v-if="isAuth('pro:technology:update') && scope.row.techState === '0'" type="text" size="small"
+              @click="changeStateHandle(scope.row.techId, -1)">停用</el-button>
+            <el-button v-if="isAuth('pro:technology:info')" type="text" size="small"
+              @click="detailHandle(scope.row.techId, scope.row.productName)">查看</el-button>
+            <el-button v-if="isAuth('pro:technology:generateInstruction') && Number(scope.row.isGenerate) === 0"
+              type="text" size="small" @click="generate(scope.row.techId)">生成</el-button>
+            <el-button v-if="isAuth('pro:technology:save') && scope.row.state === '0'" type="text" size="small"
+              @click="addOrUpdateHandle(scope.row.techId, false, true)">重新提交</el-button>
+            <el-button v-if="isAuth('pro:technology:delete')" style="color: red" type="text" size="small"
+              @click="deleteHandle(scope.row.techId)">删除</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"
+      <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>
     </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <ctafts-add-or-detail v-if="addOrUpdateVisible" ref="addOrUpdate" @close = "closeEditDialogEvent" @onChose="onChose" @refreshDataList="getTechnology" />
-    <detail v-if="detailVisible" ref="detail" @close = "closeDetailDialogEvent" @onChose="onChose"/>
+    <ctafts-add-or-detail v-if="addOrUpdateVisible" ref="addOrUpdate" @close="closeEditDialogEvent" @onChose="onChose"
+      @refreshDataList="getTechnology" />
+    <detail v-if="detailVisible" ref="detail" @close="closeDetailDialogEvent" @onChose="onChose" />
   </div>
 </template>
 
 <script>
-  import { getTechnology, update, revoke, generateInstruction } from '@/api/crafts'
-  import ctaftsAddOrDetail from './ctafts-add-or-detail-v2'
-  import Detail from './crafts-detail'
-  export default {
-    name: 'order',
-    components: {
-      ctaftsAddOrDetail, Detail
+import { getTechnology, update, revoke, generateInstruction } from '@/api/crafts'
+import ctaftsAddOrDetail from './ctafts-add-or-detail-v2'
+import Detail from './crafts-detail'
+export default {
+  name: 'order',
+  components: {
+    ctaftsAddOrDetail, Detail
+  },
+  created() {
+    this.queryData()
+  },
+  data() {
+    return {
+      addOrUpdateVisible: false,
+      addOrUpdateVisible1: false,
+      detailVisible: false,
+      dataForm: {},
+      dataList: [],
+      pageIndex: 1,
+      pageSize: 10,
+      totalPage: 0,
+      dataListLoading: false,
+      pageLoading: false,
+      dataListSelections: [],
+      optionsState: [
+        {
+          code: null, value: '全部'
+        },
+        {
+          code: '0', value: '正常'
+        },
+        {
+          code: '-1', value: '停用'
+        }
+      ],
+      optionsCustomer: []
+    }
+  },
+  methods: {
+    onChose() {
+      this.addOrUpdateVisible = false
+      this.detailVisible = false
     },
-    created () {
-      this.queryData()
+    convertState(state) {
+      switch (state) {
+        case '0': return '待提交'
+        case '1': return '待审批'
+        case '2': return '审批中'
+        case '3': return '审批完成'
+        default: return '审批不通过'
+      }
     },
-    data () {
-      return {
-        addOrUpdateVisible: false,
-        addOrUpdateVisible1: false,
-        detailVisible: false,
-        dataForm: {},
-        dataList: [],
-        pageIndex: 1,
-        pageSize: 10,
-        totalPage: 0,
-        dataListLoading: false,
-        dataListSelections: [],
-        optionsState: [
-          {
-            code: null, value: '全部'
-          },
-          {
-            code: '0', value: '正常'
-          },
-          {
-            code: '-1', value: '停用'
-          }
-        ],
-        optionsCustomer: []
+    // 查询
+    queryData() {
+      this.pageIndex = 1
+      this.getTechnology()
+    },
+    // 获取数据列表
+    getTechnology() {
+      this.dataListLoading = true
+      let params = {
+        'current': this.pageIndex,
+        'size': this.pageSize,
+        'createTimeS': this.dataForm.createTime ? this.dataForm.createTime : null,
+        'techState': this.dataForm.state ? this.dataForm.state : null,
+        'techName': this.dataForm.techName ? this.dataForm.techName : null,
+        'productName': this.dataForm.productName ? this.dataForm.productName : null
       }
+      getTechnology(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.getTechnology()
     },
-    methods: {
-      onChose () {
-        this.addOrUpdateVisible = false
-        this.detailVisible = false
-      },
-      convertState (state) {
-        switch (state) {
-          case '0': return '待提交'
-          case '1': return '待审批'
-          case '2': return '审批中'
-          case '3': return '审批完成'
-          default: return '审批不通过'
+    // 当前页
+    currentChangeHandle(val) {
+      this.pageIndex = val
+      this.getTechnology()
+    },
+    // 多选
+    selectionChangeHandle(val) {
+      this.dataListSelections = val
+    },
+    // 新增 / 修改
+    addOrUpdateHandle(id, isCopy, isResubmit) {
+      this.addOrUpdateVisible = true
+      this.$nextTick(() => {
+        this.$refs.addOrUpdate.init(id, false, Number(id) !== 0, isCopy, isResubmit)
+      })
+    },
+    // 撤销
+    revokeHandle(id) {
+      revoke({ techId: id }).then(({ data }) => {
+        if (data && data.code === '200') {
+          this.getTechnology()
         }
-      },
-      // 查询
-      queryData () {
-        this.pageIndex = 1
-        this.getTechnology()
-      },
-      // 获取数据列表
-      getTechnology () {
-        this.dataListLoading = true
-        let params = {
-          'current': this.pageIndex,
-          'size': this.pageSize,
-          'createTimeS': this.dataForm.createTime ? this.dataForm.createTime : null,
-          'techState': this.dataForm.state ? this.dataForm.state : null,
-          'techName': this.dataForm.techName ? this.dataForm.techName : null,
-          'productName': this.dataForm.productName ? this.dataForm.productName : null
+      })
+    },
+    changeStateHandle(id, type) {
+      update({ techId: id, techState: type }).then(({ data }) => {
+        if (data && data.code === '200') {
+          this.queryData()
+          this.$message({
+            type: 'info',
+            message: '撤销成功'
+          })
         }
-        getTechnology(params).then(({data}) => {
+      })
+    },
+    // 详情
+    detailHandle(id, productName) {
+      this.detailVisible = true
+      this.$nextTick(() => {
+        this.$refs.detail.init(id, '', productName)
+      })
+    },
+    // 关闭详情dialog事件
+    closeDetailDialogEvent() {
+      this.detailVisible = false
+    },
+    // 关闭编辑dialog事件
+    closeEditDialogEvent() {
+      this.addOrUpdateVisible = false
+    },
+    // 生成工艺指令
+    generate(techId) {
+      this.pageLoading = true
+      generateInstruction(techId)
+        .then(({ data }) => {
           if (data && data.code === '200') {
-            this.dataList = data.data.records
-            this.totalPage = Number(data.data.total)
+            this.$message.success('成功生成工艺指令!')
           } else {
-            this.dataList = []
-            this.totalPage = 0
+            this.$message.error((data && data.msg) || '生成工艺指令失败!')
           }
-          this.dataListLoading = false
         })
-      },
-      // 每页数
-      sizeChangeHandle (val) {
-        this.pageSize = val
-        this.pageIndex = 1
-        this.getTechnology()
-      },
-      // 当前页
-      currentChangeHandle (val) {
-        this.pageIndex = val
-        this.getTechnology()
-      },
-      // 多选
-      selectionChangeHandle (val) {
-        this.dataListSelections = val
-      },
-      // 新增 / 修改
-      addOrUpdateHandle (id, isCopy, isResubmit) {
-        this.addOrUpdateVisible = true
-        this.$nextTick(() => {
-          this.$refs.addOrUpdate.init(id, false, Number(id) !== 0, isCopy, isResubmit)
+        .catch(() => {
+          this.$message.error('生成工艺指令失败!')
         })
-      },
-      // 撤销
-      revokeHandle (id) {
-        revoke({techId: id}).then(({data}) => {
-          if (data && data.code === '200') {
-            this.getTechnology()
-          }
+        .finally(() => {
+          this.pageLoading = false
+          // 请求结束后刷新当前列表
+          this.getTechnology()
         })
-      },
-      changeStateHandle (id, type) {
-        update({ techId: id, techState: type }).then(({data}) => {
+    },
+    // 删除
+    deleteHandle(id) {
+      if (!id) return
+      let ids = []
+      ids.push(id)
+      this.$confirm(`确定删除?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$http({
+          url: this.$http.adornUrl(`/biz-service/technology/delete`),
+          method: 'DELETE',
+          data: ids
+        }).then(({ data }) => {
           if (data && data.code === '200') {
-            this.queryData()
             this.$message({
-              type: 'info',
-              message: '撤销成功'
+              message: '操作成功',
+              type: 'success',
+              duration: 1500,
+              onClose: () => {
+                this.getTechnology()
+              }
             })
-          }
-        })
-      },
-      // 详情
-      detailHandle (id, productName) {
-        this.detailVisible = true
-        this.$nextTick(() => {
-          this.$refs.detail.init(id, '', productName)
-        })
-      },
-      // 关闭详情dialog事件
-      closeDetailDialogEvent () {
-        this.detailVisible = false
-      },
-      // 关闭编辑dialog事件
-      closeEditDialogEvent () {
-        this.addOrUpdateVisible = false
-      },
-      // 生成工艺指令
-      generate (techId) {
-        generateInstruction(techId).then(({data}) => {
-          if (data && data.code === '200') {
-            this.$message.success('成功生成工艺指令!')
           } else {
-            this.$message.error('生成工艺指令失败!')
+            this.$message.error(data.msg)
           }
         })
-      },
-      // 删除
-      deleteHandle (id) {
-        if (!id) return
-        let ids = []
-        ids.push(id)
-        this.$confirm(`确定删除?`, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          this.$http({
-            url: this.$http.adornUrl(`/biz-service/technology/delete`),
-            method: 'DELETE',
-            data: ids
-          }).then(({data}) => {
-            if (data && data.code === '200') {
-              this.$message({
-                message: '操作成功',
-                type: 'success',
-                duration: 1500,
-                onClose: () => {
-                  this.getTechnology()
-                }
-              })
-            } else {
-              this.$message.error(data.msg)
-            }
-          })
-        }).catch(() => {})
-      }
+      }).catch(() => { })
     }
   }
+}
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>