|
|
@@ -10,9 +10,24 @@
|
|
|
@close="cancel"
|
|
|
:modal="isModal"
|
|
|
>
|
|
|
- <el-form ref="form" :model="form" label-width="120px">
|
|
|
- <headerTitle title="基本信息">
|
|
|
- <!-- <el-button
|
|
|
+ <div class="switch">
|
|
|
+ <div class="switch_left">
|
|
|
+ <ul>
|
|
|
+ <li
|
|
|
+ v-for="item in tabOptions"
|
|
|
+ :key="item.key"
|
|
|
+ :class="{ active: activeComp == item.key }"
|
|
|
+ @click="activeComp = item.key"
|
|
|
+ >
|
|
|
+ {{ item.name }}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="activeComp == 'main'">
|
|
|
+ <el-form ref="form" :model="form" label-width="120px">
|
|
|
+ <headerTitle title="基本信息">
|
|
|
+ <!-- <el-button
|
|
|
size="small"
|
|
|
type="primary"
|
|
|
icon="el-icon-s-grid"
|
|
|
@@ -21,100 +36,94 @@
|
|
|
>
|
|
|
导出
|
|
|
</el-button> -->
|
|
|
- </headerTitle>
|
|
|
- <el-row>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="需求来源类型:"
|
|
|
- prop="contactTel"
|
|
|
- >
|
|
|
- {{ form.sourceType }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
+ </headerTitle>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="需求来源类型:" prop="contactTel">
|
|
|
+ {{ form.sourceName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="需求部门:"
|
|
|
- prop="requireDeptName"
|
|
|
- >
|
|
|
- {{ detailData.requireDeptName }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="需求人:"
|
|
|
- prop="requireUserName"
|
|
|
-
|
|
|
- >
|
|
|
- {{ form.requireUserName }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item prop="remark" label="是否接受拆单" >
|
|
|
- {{form.acceptUnpack===1?'接受':form.cceptUnpack===1?'不接受':''}}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="用途:"
|
|
|
- prop="useTo"
|
|
|
-
|
|
|
- >
|
|
|
- {{ form.useTo }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="完成日期:"
|
|
|
- prop="finishDate"
|
|
|
- >
|
|
|
- {{ form.finishDate }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item prop="remark" label="备注:">
|
|
|
- {{ form.remark }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item prop="askFile" label="附件:">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="需求部门:" prop="requireDeptName">
|
|
|
+ {{ detailData.requireDeptName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="需求人:" prop="requireUserName">
|
|
|
+ {{ form.requireUserName }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item prop="remark" label="是否接受拆单">
|
|
|
+ {{
|
|
|
+ form.acceptUnpack === 1
|
|
|
+ ? '接受'
|
|
|
+ : form.cceptUnpack === 1
|
|
|
+ ? '不接受'
|
|
|
+ : ''
|
|
|
+ }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="用途:" prop="useTo">
|
|
|
+ {{ form.useTo }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="完成日期:" prop="finishDate">
|
|
|
+ {{ form.finishDate }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item prop="remark" label="备注:">
|
|
|
+ {{ form.remark }}
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item prop="askFile" label="附件:">
|
|
|
+ <el-link
|
|
|
+ v-if="form.files && form.files !== ''"
|
|
|
+ type="primary"
|
|
|
+ :underline="false"
|
|
|
+ @click="downloadFile(form.files)"
|
|
|
+ >
|
|
|
+ {{ form.files.name }}</el-link
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <headerTitle title="需求清单"></headerTitle>
|
|
|
+ <ele-pro-table
|
|
|
+ ref="table"
|
|
|
+ :needPage="false"
|
|
|
+ :columns="columns"
|
|
|
+ :toolkit="[]"
|
|
|
+ :datasource="detailData.detailList"
|
|
|
+ row-key="id"
|
|
|
+ >
|
|
|
+ <template v-slot:files="{ row }">
|
|
|
+ <div v-if="row.files && row.files?.length">
|
|
|
<el-link
|
|
|
- v-if="form.files && form.files !== ''"
|
|
|
+ v-for="link in row.files"
|
|
|
+ :key="link.id"
|
|
|
type="primary"
|
|
|
:underline="false"
|
|
|
- @click="downloadFile(form.files)"
|
|
|
+ @click="downloadFile(link)"
|
|
|
>
|
|
|
- {{ form.files.name }}</el-link
|
|
|
+ {{ link.name }}</el-link
|
|
|
>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </ele-pro-table>
|
|
|
+ </div>
|
|
|
|
|
|
- <headerTitle title="需求清单"></headerTitle>
|
|
|
- <ele-pro-table
|
|
|
- ref="table"
|
|
|
- :needPage="false"
|
|
|
- :columns="columns"
|
|
|
- :toolkit="[]"
|
|
|
- :datasource="detailData.detailList"
|
|
|
- row-key="id"
|
|
|
- >
|
|
|
- <template v-slot:files="{ row }">
|
|
|
- <div v-if="row.files && row.files?.length">
|
|
|
- <el-link
|
|
|
- v-for="link in row.files"
|
|
|
- :key="link.id"
|
|
|
- type="primary"
|
|
|
- :underline="false"
|
|
|
- @click="downloadFile(link)"
|
|
|
- >
|
|
|
- {{ link.name }}</el-link
|
|
|
- >
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </ele-pro-table>
|
|
|
+ <bpmDetail
|
|
|
+ v-if="activeComp === 'bpm' && form.processInstanceId"
|
|
|
+ :id="form.processInstanceId"
|
|
|
+ ></bpmDetail>
|
|
|
|
|
|
<div slot="footer" class="footer">
|
|
|
<el-button @click="cancel">返回</el-button>
|
|
|
@@ -127,16 +136,25 @@
|
|
|
import { getFile } from '@/api/system/file';
|
|
|
import dictMixins from '@/mixins/dictMixins';
|
|
|
import { copyObj } from '@/utils/util';
|
|
|
+ import bpmDetail from '@/views/bpm/processInstance/detail.vue';
|
|
|
|
|
|
export default {
|
|
|
mixins: [dictMixins],
|
|
|
- props:{
|
|
|
+ props: {
|
|
|
isModal: {
|
|
|
default: true
|
|
|
}
|
|
|
},
|
|
|
+ components: {
|
|
|
+ bpmDetail
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
+ activeComp: 'main',
|
|
|
+ tabOptions: [
|
|
|
+ { key: 'main', name: '需求详情' },
|
|
|
+ { key: 'bpm', name: '流程详情' }
|
|
|
+ ],
|
|
|
visible: false,
|
|
|
title: '详情',
|
|
|
row: {},
|
|
|
@@ -228,7 +246,7 @@
|
|
|
methods: {
|
|
|
async open(row) {
|
|
|
this.visible = true;
|
|
|
- this.getDetailData(row.requirementId||row.id);
|
|
|
+ this.getDetailData(row.requirementId || row.id);
|
|
|
},
|
|
|
cancel() {
|
|
|
this.$nextTick(() => {
|
|
|
@@ -248,7 +266,7 @@
|
|
|
const data = await getDetail(id);
|
|
|
this.loading = false;
|
|
|
if (data) {
|
|
|
- this.form = data;
|
|
|
+ this.form = data;
|
|
|
|
|
|
this.detailData = data;
|
|
|
if (data.files && data.files.length > 0) {
|