whj před 1 rokem
rodič
revize
df96545a5f

+ 27 - 2
src/views/idle-assets/IdleAssets.vue

@@ -9,6 +9,18 @@
                 <a-input v-model.trim="queryParam.keyword" placeholder="请输入闲置名称"/>
               </a-form-item>
             </a-col>
+            <a-col :md="8" :sm="24">
+              <a-form-item label="闲置状态">
+                <a-select v-model="queryParam.status" placeholder="请选择">
+                  <a-select-option
+                    v-for="(label,value) in statusMap"
+                    :key="value"
+                    :label="label"
+                    :value="value">{{ label }}
+                  </a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
             <a-col :md="8 || 24" :sm="24">
               <span class="table-page-search-submitButtons">
                 <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
@@ -54,6 +66,10 @@
             v-if="record.status===1||record.status===2"
             @click="handleAudit(record)"
           >审核</operation-button>
+          <operation-button
+            v-if="record.status===3"
+            @click="handlePrint(record)"
+          >打印</operation-button>
         </span>
         <template #status="text">
           <badge :text="BaseTool.Object.getField(statusMap,text)" :status="DictCache.COLOR.SB_UNUSED_STATUS[text]"/>
@@ -63,6 +79,8 @@
     <BaseForm ref="baseForm" @ok="handleOk"/>
     <AuditForm ref="auditForm" @ok="handleOk"/>
     <Detail ref="detail" @ok="handleOk" />
+    <TicketForm ref="ticketForm" @ok="handleOk" />
+
   </a-card>
 </template>
 
@@ -72,12 +90,15 @@ import { getSbUnusedPage, getUnusedInfo } from '@/api/idle-assets/idle-assets'
 import BaseForm from './modules/BaseForm.vue'
 import AuditForm from './modules/AuditForm.vue'
 import Detail from './modules/Detail.vue'
+import TicketForm from './modules/TicketForm'
+
 export default {
   name: 'IdleAssets',
   components: {
     STable,
     Ellipsis,
     BaseForm,
+    TicketForm,
     AuditForm,
     Detail
   },
@@ -212,8 +233,12 @@ export default {
     handleAudit (record) {
       this.$refs.auditForm.base(record)
     },
-    handleEdit (record) {
-
+    handlePrint (record) {
+      this.visible = false
+      getUnusedInfo({ id: record.id }).then(res => {
+        const modal = this.$refs.ticketForm
+        modal.base(res.data)
+      })
     },
     handleView (record) {
       getUnusedInfo({ id: record.id }).then(res => {

+ 21 - 7
src/views/idle-assets/modules/Detail.vue

@@ -1,9 +1,5 @@
 <template>
   <a-card title="详情" v-show="visible" :bordered="false">
-    <div slot="extra">
-      <a-button type="primary" v-show="modal.status===1||modal===2" @click="handleAudit">审核</a-button>&nbsp;
-      <a-button @click="handleCancel">返回</a-button>
-    </div>
     <title-divider title="基本信息" width="90px"></title-divider>
     <detail-list title="" :col="2">
       <detail-list-item term="闲置名称">{{ modal.name }}</detail-list-item>
@@ -27,6 +23,10 @@
     <a-steps :current="modal.sbUnusedVerifyRecordVOS.length-1" direction="vertical">
       <a-step v-for="item in modal.sbUnusedVerifyRecordVOS" :key="item.id" :title="item.realName" :sub-title="item.createdTime" :description="item.advice" />
     </a-steps>
+    <div class="btn">
+      <a-button type="primary" v-show="modal.status===1||modal===2" @click="handleAudit">审核</a-button>&nbsp;
+      <a-button @click="handleCancel">返回</a-button>
+    </div>
     <AuditForm ref="auditForm" @ok="handleOk"/>
 
   </a-card>
@@ -47,7 +47,9 @@ export default {
   data () {
     return {
       modal: {
-        sbUnusedVerifyRecordVOS: []
+        sbUnusedVerifyRecordVOS: [],
+        sbUnusedDetailVOS: []
+
       },
       visible: false,
       statusMap: {},
@@ -66,6 +68,11 @@ export default {
           title: '设备编号',
           dataIndex: 'sbNo',
           key: 'sbNo'
+        },
+        {
+          title: '所属车间',
+          dataIndex: 'positionName',
+          key: 'positionName'
         }
       ]
     }
@@ -90,7 +97,8 @@ export default {
       this.$emit('ok')
 
       this.modal = {
-        sbUnusedVerifyRecordVOS: []
+        sbUnusedVerifyRecordVOS: [],
+        sbUnusedDetailVOS: []
       }
     }
   }
@@ -98,5 +106,11 @@ export default {
 </script>
 
 <style>
-
+.btn{
+  position: fixed;
+  bottom: 50px;
+  width: 80%;
+  display: flex;
+  justify-content: center;
+}
 </style>

+ 39 - 0
src/views/idle-assets/modules/SbInfoSelectModal.vue

@@ -264,6 +264,45 @@ export default {
           rowSelection: {
             selectedRowKeys: this.selectedRowKeys,
             onChange: this.onSelectChange,
+            onSelect: (record, selected, selectedRows, nativeEvent) => {
+              if (selected) {
+                this.selectedRows.push(record)
+              }
+              if (!selected) {
+                const delIndex = this.selectedRows.findIndex(val => {
+                  return val.id === record.id
+                })
+                this.selectedRows.splice(delIndex, 1)
+              }
+              // record 点击某一条的所有数据
+              // selected 点击的一条是否被选中
+            },
+            onSelectAll: (selected, selectedRows, changeRows) => {
+              if (selected) {
+                this.selectedRows = this.selectedRows.concat(changeRows)
+              }
+              if (!selected) {
+                let selectedRows = JSON.parse(JSON.stringify(this.selectedRows))
+                const delIndex = []
+                selectedRows.forEach((item, index) => {
+                  changeRows.forEach((val, itemIndex) => {
+                    if (item.id === val.id) {
+                      delIndex.push(index)
+                    }
+                  })
+                })
+                delIndex.forEach(item => {
+                  delete selectedRows[item]
+                })
+                selectedRows = selectedRows.filter(item => {
+                  return item !== undefined
+                })
+                this.selectedRows = selectedRows
+              }
+              // selected 点击全选是否选中
+              // selectedRows 点击全选判断所有的选中数据
+              // changeRows 所有改变选中状态的数据
+            },
             type: this.type,
             getCheckboxProps: record => ({
               props: {

+ 182 - 0
src/views/idle-assets/modules/TicketForm.vue

@@ -0,0 +1,182 @@
+<template>
+  <div class="main" v-show="visible">
+    <div>
+      <a-button type="primary" v-print="'#print-container2'" :disabled="disabled">打印</a-button>
+      <a-button style="margin-left: 8px" @click="handleCancel()">返回</a-button>
+    </div>
+    <div id="print-container2">
+      <div class="title">
+        <div style="font-size:26px;"><span style="font-size:30px;font-weight:700;vertical-align: middle;letter-spacing:.2em;">资产闲置单</span></div>
+      </div>
+      <div style="display:flex;justify-content:space-between; margin: 10px auto;width: 830px;">
+        <div>申请人:{{ modal.applyName }}</div>
+        <!-- <div>日期:{{ BaseTool.Date.formatter(new Date, BaseTool.Date.PICKER_NORM_DATE_PATTERN) }}</div> -->
+        <div>单号:{{ modal.no }}</div>
+      </div>
+      <div class="tables" >
+        <table>
+          <tr>
+            <td colspan="3" style="text-align:center;">
+              <div style="font-size:18px;"><span style="font-weight:700;vertical-align: middle;letter-spacing:.2em;">申请信息</span></div>
+            </td>
+          </tr>
+          <tr>
+            <td style="text-align:left;">
+              闲置名称:{{ modal.name }}
+            </td>
+            <td colspan="2" style="text-align:left;">
+              申请原因:{{ modal.advice }}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="3" style="text-align:left;">
+              <table style="width:100%;border:none">
+                <tr>
+                  <td colspan="4">设备集合</td>
+                </tr>
+                <tr>
+                  <td>设备名称</td>
+                  <td>设备位号</td>
+                  <td>设备编号</td>
+                  <td>所属车间</td>
+                </tr>
+                <tr v-for="item in modal.sbUnusedDetailVOS" :key="item.id">
+                  <td>{{ item.sbName }}</td>
+                  <td>{{ item.positionNo }}</td>
+                  <td>{{ item.sbNo }}</td>
+                  <td>{{ item.positionName }}</td>
+                </tr>
+              </table>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="3" style="text-align:left;">
+              处理人意见区: <br />
+              <br />
+              <div style="padding-left:30px;">
+                <a-steps :current="modal.sbUnusedVerifyRecordVOS.length-1" direction="vertical">
+                  <a-step v-for="item in modal.sbUnusedVerifyRecordVOS" :key="item.id" :title="item.realName" :sub-title="item.createdTime" :description="item.advice" />
+                </a-steps>
+              </div>
+            </td>
+          </tr><tr>
+            <td style="text-align:left;">
+              申请人签字:
+            </td>
+            <td style="text-align:left;">
+              审核主管签字:
+            </td>
+            <td style="text-align:left;">
+              部门负责人签字:
+            </td>
+          </tr>
+        </table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      visible: false,
+      disabled: false,
+      columns: [
+        {
+          title: '设备名称',
+          dataIndex: 'sbName',
+          key: 'sbName'
+        },
+        {
+          title: '设备位号',
+          dataIndex: 'positionNo',
+          key: 'positionNo'
+        },
+        {
+          title: '设备编号',
+          dataIndex: 'sbNo',
+          key: 'sbNo'
+        },
+        {
+          title: '所属车间',
+          dataIndex: 'positionName',
+          key: 'positionName'
+        }
+      ],
+      modal: {
+        sbUnusedVerifyRecordVOS: [],
+        sbUnusedDetailVOS: []
+      }
+    }
+  },
+  created () {
+    // 下拉框map
+    // this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.OUT_STORE_FORM_TYPE)
+  },
+  methods: {
+    base (record) {
+      this.visible = true
+      this.modal = record
+    },
+    handleCancel (values) {
+      this.visible = false
+      this.$emit('ok')
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.main{
+  background: #fff;
+  font-size: 16px;
+}
+.title{
+  text-align: center;
+  font-size:18px;
+}
+.tables{
+  margin: 10px auto;
+   width: 830px;
+  font-size: 16px;
+  overflow-x:auto;
+  table {
+        margin: 0 auto;
+        border: 1px solid #D6D6D6;
+        border-radius: 6px;
+   width: 830px;
+        border-collapse: collapse;
+        font-weight: 400;
+    }
+    th{
+      color: #FFFFFF;
+      background: #3762FC;
+    }
+    tr {
+      min-height:26px;
+    }
+    th,
+    td {
+        border: 1px solid #D6D6D6;
+        text-align: center;
+        padding: 2px 10px;
+        word-wrap:break-word;
+        word-break:break-all;
+    }
+}
+.check{
+  position:absolute;
+  left:0px;
+  font-size:20px;
+}
+.checks{
+  position:absolute;
+  left:-27px;
+  font-size:20px;
+}
+/deep/.ant-radio-inner::after ,/deep/.ant-checkbox-checked .ant-checkbox-inner{
+  background-color:#fff;
+  border-radius: 0;
+}
+</style>