|
@@ -16,6 +16,9 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
size: "mini",
|
|
|
+ title: "明细",
|
|
|
+ width: "100%",
|
|
|
+ column: 3,
|
|
|
visible: false,
|
|
|
loading: false,
|
|
|
columns: Columns,
|
|
@@ -35,41 +38,35 @@ export default {
|
|
|
watch: {},
|
|
|
methods: {
|
|
|
//
|
|
|
+ setFileList(prop) {
|
|
|
+ return prop.split(";").map((file) => ({
|
|
|
+ url: file,
|
|
|
+ name: file.split("/")[file.split("/").length - 1],
|
|
|
+ }));
|
|
|
+ },
|
|
|
+ //
|
|
|
open(prop) {
|
|
|
this.visible = true;
|
|
|
this.fetchItem(prop);
|
|
|
},
|
|
|
- //
|
|
|
- hide() {
|
|
|
- this.visible = false;
|
|
|
- this.params = initParams(Columns);
|
|
|
- this.tabName = this.tabColumns[0].key;
|
|
|
- },
|
|
|
- //
|
|
|
+ // 查 询
|
|
|
async fetchItem(prop) {
|
|
|
try {
|
|
|
this.loading = true;
|
|
|
const { code, data } = await ITEM(prop);
|
|
|
if (code === 200) {
|
|
|
this.params = data;
|
|
|
-
|
|
|
this.tabName = this.tabColumns[0].key;
|
|
|
} else {
|
|
|
this.$notify.warning({ title: msg });
|
|
|
}
|
|
|
} catch (err) {
|
|
|
- //
|
|
|
+ // catch
|
|
|
} finally {
|
|
|
+ // finally
|
|
|
this.loading = false;
|
|
|
}
|
|
|
},
|
|
|
- //
|
|
|
- setFileList(prop) {
|
|
|
- return prop.split(",").map((file) => ({
|
|
|
- url: file,
|
|
|
- name: file.split("/")[file.split("/").length - 1],
|
|
|
- }));
|
|
|
- },
|
|
|
},
|
|
|
created() {},
|
|
|
mounted() {},
|
|
@@ -77,14 +74,15 @@ export default {
|
|
|
};
|
|
|
</script>
|
|
|
<template>
|
|
|
- <el-dialog :visible.sync="visible" title="明细" fullscreen @close="hide">
|
|
|
- <el-descriptions :column="4" border>
|
|
|
+ <el-drawer :visible.sync="visible" :size="width" :title="title">
|
|
|
+ <el-descriptions border :size="size" :column="column" style="margin: 10px">
|
|
|
<el-descriptions-item
|
|
|
v-if="params[column.key]"
|
|
|
v-for="(column, index) in columns"
|
|
|
:key="index"
|
|
|
:label="column.title"
|
|
|
- :labelStyle="{ width: '100px' }"
|
|
|
+ :labelStyle="{ width: '150px' }"
|
|
|
+ :contentStyle="{ width: 'auto' }"
|
|
|
>
|
|
|
<dict-tag
|
|
|
v-if="column.inputType === 'Select'"
|
|
@@ -93,25 +91,17 @@ export default {
|
|
|
:options="dict.type[column.referName]"
|
|
|
/>
|
|
|
<span v-else-if="column.inputType === 'Upload'">
|
|
|
- <el-button
|
|
|
- v-for="file in setFileList(params[column.key])"
|
|
|
- :key="file.url"
|
|
|
- type="text"
|
|
|
- @click.stop="
|
|
|
- download(
|
|
|
- '/pu/contract/download/resource',
|
|
|
- { resource: file.url },
|
|
|
- file.name
|
|
|
- )
|
|
|
- "
|
|
|
- >
|
|
|
- {{ file.name }}
|
|
|
- </el-button>
|
|
|
+ <dr-file-tag v-model="params[column.key]"></dr-file-tag>
|
|
|
</span>
|
|
|
<span v-else>{{ params[column.key] }}</span>
|
|
|
</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
- <el-tabs v-model="tabName" tab-position="top" style="width: 100%">
|
|
|
+ <el-tabs
|
|
|
+ v-model="tabName"
|
|
|
+ :size="size"
|
|
|
+ tab-position="top"
|
|
|
+ style="margin: 10px"
|
|
|
+ >
|
|
|
<el-tab-pane
|
|
|
v-for="(column, index) in tabColumns"
|
|
|
:key="index"
|
|
@@ -119,7 +109,7 @@ export default {
|
|
|
:label="column.title"
|
|
|
lazy
|
|
|
>
|
|
|
- <el-table :data="params[column.key]" style="width: 100%">
|
|
|
+ <el-table :size="size" :data="params[column.key]">
|
|
|
<el-table-column
|
|
|
v-for="(cColumn, cIndex) in column.tableColumns"
|
|
|
:key="cIndex"
|
|
@@ -140,5 +130,5 @@ export default {
|
|
|
</el-table>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
- </el-dialog>
|
|
|
+ </el-drawer>
|
|
|
</template>
|