Jehu 2 yıl önce
ebeveyn
işleme
3c009b8e0d

+ 111 - 0
src/views/modules/finance/expense-detail.vue

@@ -0,0 +1,111 @@
+<template>
+  <!-- <el-dialog
+    title="查看"
+    width="70%"
+    :close-on-click-modal="false"
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
+    <div style="margin-left: 20px;margin-right: 20px">
+    <!-- 工作流 -->
+      <div v-if="dataForm.workFlowBusinessExt && dataForm.workFlowBusinessExt.workFlowProcessStepList">
+        <el-steps :active="stepActive" align-center finish-status="success" style="margin-bottom: 20px">
+        <template v-for="(item, i) in dataForm.workFlowBusinessExt.workFlowProcessStepList">
+            <el-step :title="item.stepName" :description="item.assigneeName"></el-step>
+        </template>
+        </el-steps>
+        <el-collapse style="margin-bottom: 20px">
+        <el-collapse-item>
+            <template slot="title">
+            <span style="color: red">操作日志(展开查看更多):</span>
+            </template>
+            <template v-for="(item, i) in dataForm.workFlowBusinessExt.processLogList">
+            <div>{{++i}}:{{item.approverName}}  {{item.createTime}}  {{item.approvalValue}}</div>
+            </template>
+        </el-collapse-item>
+        </el-collapse>
+      </div>
+      <e-desc title="基本信息" column="3">
+        <e-desc-item label="编码">{{dataForm.code}}</e-desc-item>
+        <e-desc-item label="发生日期">{{dataForm.happenTime}}</e-desc-item>
+        <e-desc-item label="报销金额">{{dataForm.submitExpenseAmount}}</e-desc-item>
+        <e-desc-item label="报销内容" span="3">{{dataForm.happenContent}}</e-desc-item>
+        <e-desc-item label="备注说明" span="3">{{dataForm.notes}}</e-desc-item>
+      </e-desc>
+      <e-desc title="报销证明附件">
+        <upload-component :display="true" :display-title="false" :accept="'*'" :file-obj-list="fileList"/>
+      </e-desc>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="onChose">返回</el-button>
+    </span>
+  </div>
+  <!-- </el-dialog> -->
+</template>
+
+<script>
+  import EDesc from '../common/e-desc'
+  import EDescItem from '../common/e-desc-item'
+  import uploadComponent from '../common/upload-component'
+  import { getExpenseDetail } from '@/api/finance'
+  export default {
+    name: 'expense-detail',
+    components: {
+      EDesc, EDescItem, uploadComponent
+    },
+    data () {
+      return {
+        visible: false,
+        id: 0,
+        dataForm: {},
+        cusRCommProductVOS: [],
+        fileList: []
+      }
+    },
+    computed: {
+      stepActive () {
+        if (!(this.dataForm.workFlowBusinessExt && this.dataForm.workFlowBusinessExt.workFlowProcessStepList)) {
+          return 0
+        }
+        let stepIndex = this.dataForm.workFlowBusinessExt.workFlowProcessStepList.findIndex(item => item.stepId === this.dataForm.workFlowBusinessExt.currentStepId)
+        return stepIndex !== -1 ? stepIndex : 0
+      }
+    },
+    methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
+      async init (id) {
+        this.visible = true
+        this.id = id || 0
+        if (!id) return
+        await getExpenseDetail(this.id).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataForm = data.data
+            // 文件列表
+            this.fileList = []
+            if (data.data.attachList) {
+              data.data.attachList.forEach((item) => {
+                this.fileList.push({
+                  name: item.fileName,
+                  url: item.url,
+                  id: item.url
+                })
+              })
+            }
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+.my-line{
+  border-bottom: 1px solid #c0c4cc;
+  margin-bottom: 10px;
+}
+.title{
+  padding: 10px 0 ;
+}
+</style>

+ 11 - 2
src/views/modules/finance/expense.vue

@@ -105,7 +105,7 @@
           width="150"
           label="操作">
           <template slot-scope="scope">
-            <el-button v-if="isAuth('finance:expense:info')" type="text" size="small" @click="addOrUpdateHandle(scope.row.submitExpenseId, true)">详情</el-button>
+            <el-button v-if="isAuth('finance:expense:info')" type="text" size="small" @click="detailHandle(scope.row.submitExpenseId)">详情</el-button>
             <el-button v-if="isAuth('finance:expense:update') && scope.row.approvalState.toString() === '1'" type="text" size="small" @click="addOrUpdateHandle(scope.row.submitExpenseId, false)">编辑</el-button>
           </template>
         </el-table-column>
@@ -122,6 +122,7 @@
     </template>
     <!-- 弹窗, 新增 / 修改 -->
     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @onChose="onChose"/>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
     <!-- 文件预览 -->
     <preview-component v-if="previewVisible" ref="preview"/>
   </div>
@@ -129,13 +130,14 @@
 
 <script>
   import AddOrUpdate from './expense-add-or-update'
+  import Detail from './expense-detail'
   import PreviewComponent from '../common/preview-component'
   import { getExpenseList } from '@/api/finance'
 
   export default {
     name: 'customer',
     components: {
-      AddOrUpdate, PreviewComponent
+      AddOrUpdate, PreviewComponent, Detail
     },
     data () {
       return {
@@ -243,6 +245,13 @@
         this.$nextTick(() => {
           this.$refs.addOrUpdate.init(id, disable)
         })
+      },
+      // 查看页
+      detailHandle (id) {
+        this.detailVisible = true
+        this.$nextTick(() => {
+          this.$refs.detail.init(id)
+        })
       }
     }
   }

+ 4 - 0
src/views/modules/trace/order-detail.vue

@@ -151,6 +151,10 @@
           {
             code: '3',
             value: '生产完成'
+          },
+          {
+            code: '5',
+            value: '报废'
           }
         ]
       }

+ 5 - 1
src/views/modules/trace/product-list.vue

@@ -36,7 +36,7 @@
           align="center"
           min-width="140"
           :show-tooltip-when-overflow="true"
-          label="订单编号">
+          label="合同号">
         </el-table-column>
         <el-table-column
           prop="customerName"
@@ -130,6 +130,10 @@
           {
             code: '3',
             value: '生产完成'
+          },
+          {
+            code: '5',
+            value: '报废'
           }
         ]
       }

+ 25 - 11
src/views/modules/trace/search.vue

@@ -1,17 +1,20 @@
 <!-- 追溯中心 -->
 <template>
   <div class="trace">
-    <template v-if="!orderListVisible && !productListVisible">
-      <div style="margin-top: 15px;">
-        <el-input :placeholder="codePlaceHoler" v-model.trim="code" class="input-with-select">
-          <el-select v-model="type" slot="prepend" placeholder="请选择">
-            <el-option label="订单" value="1"></el-option>
-            <el-option label="产品" value="2"></el-option>
-          </el-select>
-          <el-button slot="append" type="primary" ref="searchBtn" :loading="searchloading" @click="search()">追溯</el-button>
-        </el-input>
-      </div>
-    </template>
+    <div class="search">
+      <template v-if="!orderListVisible && !productListVisible">
+        <div>
+          <el-input :placeholder="codePlaceHoler" v-model.trim="code" class="input-with-select">
+            <el-select v-model="type" slot="prepend" placeholder="请选择">
+              <el-option label="订单" value="1"></el-option>
+              <el-option label="产品" value="2"></el-option>
+            </el-select>
+            <el-button slot="append" type="primary" ref="searchBtn" :loading="searchloading" @click="search()">追溯</el-button>
+          </el-input>
+        </div>
+      </template>
+    </div>
+    
     <!-- 弹窗, 新增 / 修改 -->
     <order-list v-if="orderListVisible" :defaultList="defaultOrderList" :orderCode="code" :defaultTotalPage="defaultOrderTotal" ref="orderList" @onChose="onChose"/>      
     <product-list v-if="productListVisible" :defaultList="defaultProductList" :productCode="code" :defaultTotalPage="defaultProductTotal" ref="productList" @onChose="onChose"></product-list>
@@ -117,4 +120,15 @@ export default {
   .input-with-select .el-input-group__prepend {
     background-color: #fff;
   }
+  .trace {
+    width: 100%;
+    min-height: 711px;
+    position: relative;
+  }
+  .search {
+    position: absolute;
+    width: 100%;
+    top: 50%;
+    margin-top:-20px
+  }
 </style>