ocpview-pro 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ocpviewplus.min.esm.js +597 -675
- package/dist/ocpviewplus.min.js +14 -14
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +134 -1
- package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelSlotPanel.vue +139 -0
- package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +10 -3
- package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +11 -0
- package/src/components/masterplate/RewriteBillListDetails/index.vue +16 -2
- package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +10 -0
- package/src/components/masterplate/billconditionbox.vue +11 -11
- package/src/components/masterplate/layouttemplate.vue +96 -31
- package/src/plugins/theme/theme-variable.css +1 -1
package/package.json
CHANGED
|
@@ -74,6 +74,22 @@
|
|
|
74
74
|
:dictData="dictData"
|
|
75
75
|
@doAction="doAction"
|
|
76
76
|
/>
|
|
77
|
+
<BillInfoPanelSlotPanel
|
|
78
|
+
v-if="temp2.type === 'SlotPanelCard'"
|
|
79
|
+
:ref="temp2.name"
|
|
80
|
+
:config="temp2"
|
|
81
|
+
:dictData="dictData"
|
|
82
|
+
@doAction="doAction"
|
|
83
|
+
>
|
|
84
|
+
<!-- 组件原始slot透传 -->
|
|
85
|
+
<template
|
|
86
|
+
v-for="(_, name) in $slots"
|
|
87
|
+
#[name]="slotData"
|
|
88
|
+
>
|
|
89
|
+
<slot :name="name" v-bind="slotData || {}"></slot>
|
|
90
|
+
</template>
|
|
91
|
+
<!-- ============================ -->
|
|
92
|
+
</BillInfoPanelSlotPanel>
|
|
77
93
|
<DetailsBoxs
|
|
78
94
|
v-if="temp2.type === 'DetailsBox'"
|
|
79
95
|
:ref="temp2.name"
|
|
@@ -102,11 +118,12 @@
|
|
|
102
118
|
<script>
|
|
103
119
|
import billdetailform from "../billdetailform.vue";
|
|
104
120
|
import BillInfoPanelEditTable from "./BillInfoPanelEditTable.vue";
|
|
121
|
+
import BillInfoPanelSlotPanel from "./BillInfoPanelSlotPanel.vue";
|
|
105
122
|
|
|
106
123
|
export default {
|
|
107
124
|
name: "BillInfoPanel",
|
|
108
125
|
extends: billdetailform,
|
|
109
|
-
components: { BillInfoPanelEditTable },
|
|
126
|
+
components: { BillInfoPanelEditTable, BillInfoPanelSlotPanel },
|
|
110
127
|
data() {
|
|
111
128
|
return {};
|
|
112
129
|
},
|
|
@@ -174,6 +191,122 @@ export default {
|
|
|
174
191
|
}
|
|
175
192
|
return flag;
|
|
176
193
|
},
|
|
194
|
+
/**
|
|
195
|
+
* 覆写设置明细数据
|
|
196
|
+
*/
|
|
197
|
+
setData(data) {
|
|
198
|
+
this.myConfig.formsConfig.items.forEach((el) => {
|
|
199
|
+
if (this.$refs[el.name] && this.$refs[el.name][0]) {
|
|
200
|
+
this.$refs[el.name][0].setData(data);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
if (this.detailConfig.items) {
|
|
204
|
+
this.detailConfig.items.forEach((el) => {
|
|
205
|
+
if (data[el.name]) {
|
|
206
|
+
if (this.$refs[el.name] && this.$refs[el.name][0]) {
|
|
207
|
+
if (el.type === "DetailsBox") {
|
|
208
|
+
let tempDetailData = this.setDetailsBox(
|
|
209
|
+
el,
|
|
210
|
+
data
|
|
211
|
+
);
|
|
212
|
+
this.$refs[el.name][0].setData(tempDetailData);
|
|
213
|
+
} else {
|
|
214
|
+
if (
|
|
215
|
+
el.type === "FormCardBox" ||
|
|
216
|
+
el.type === "FormCardBox2"
|
|
217
|
+
) {
|
|
218
|
+
if (data[el.name].length > 0) {
|
|
219
|
+
this.$refs[el.name][0].setData(
|
|
220
|
+
data[el.name][0]
|
|
221
|
+
);
|
|
222
|
+
} else {
|
|
223
|
+
this.$refs[el.name][0].clearData();
|
|
224
|
+
}
|
|
225
|
+
} else {
|
|
226
|
+
this.$refs[el.name][0].setData(
|
|
227
|
+
data[el.name]
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
} else {
|
|
233
|
+
if (this.config.response === el.name) {
|
|
234
|
+
if (
|
|
235
|
+
el.type === "FormCardBox" ||
|
|
236
|
+
el.type === "FormCardBox2"
|
|
237
|
+
) {
|
|
238
|
+
let temp = {};
|
|
239
|
+
if (el.items) {
|
|
240
|
+
el.items.forEach((el2) => {
|
|
241
|
+
if (el2.name) {
|
|
242
|
+
temp[el2.name] = data[el2.name];
|
|
243
|
+
}
|
|
244
|
+
if (el2.sname) {
|
|
245
|
+
temp[el2.sname] = data[el2.sname];
|
|
246
|
+
}
|
|
247
|
+
if (el2.ename) {
|
|
248
|
+
temp[el2.ename] = data[el2.ename];
|
|
249
|
+
}
|
|
250
|
+
if (el2.textName) {
|
|
251
|
+
temp[el2.textName] =
|
|
252
|
+
data[el2.textName];
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
this.$refs[el.name][0].setData(temp);
|
|
257
|
+
}
|
|
258
|
+
// ==============================================
|
|
259
|
+
// SlotPanelCard 插槽数据赋值 覆写
|
|
260
|
+
if (el.type === "SlotPanelCard") {
|
|
261
|
+
this.$refs[el.name][0].setData(data);
|
|
262
|
+
}
|
|
263
|
+
// ==============================================
|
|
264
|
+
} else {
|
|
265
|
+
if (
|
|
266
|
+
el.type !== "AppendixBox" ||
|
|
267
|
+
el.type !== "AppendixBox2"
|
|
268
|
+
) {
|
|
269
|
+
if (
|
|
270
|
+
this.$refs[el.name] &&
|
|
271
|
+
this.$refs[el.name][0]
|
|
272
|
+
) {
|
|
273
|
+
this.$refs[el.name][0].setData([]);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
if (this.billAppendixConfig.showAppendix) {
|
|
281
|
+
if (
|
|
282
|
+
this.$refs.detail_appenndix &&
|
|
283
|
+
this.$refs.detail_appenndix[0]
|
|
284
|
+
) {
|
|
285
|
+
let billno = data[this.billAppendixConfig.appendixKey];
|
|
286
|
+
let billmoduleid = data.billmoduleid;
|
|
287
|
+
this.$refs.detail_appenndix[0].setData(
|
|
288
|
+
billno,
|
|
289
|
+
billmoduleid
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
} else if (this.billAppendixConfig.showAppendix2) {
|
|
293
|
+
if (
|
|
294
|
+
this.$refs.detail_appenndix2 &&
|
|
295
|
+
this.$refs.detail_appenndix2[0]
|
|
296
|
+
) {
|
|
297
|
+
let billno = data[this.billAppendixConfig.appendixKey];
|
|
298
|
+
let billmoduleid = data.billmoduleid;
|
|
299
|
+
this.$refs.detail_appenndix2[0].setData(
|
|
300
|
+
billno,
|
|
301
|
+
billmoduleid
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
this.$nextTick(() => {
|
|
306
|
+
this.resetAnchor();
|
|
307
|
+
this.curlEditObject = "";
|
|
308
|
+
});
|
|
309
|
+
},
|
|
177
310
|
},
|
|
178
311
|
mounted() {
|
|
179
312
|
// console.log("我继承覆写了8888");
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Card ref="card" :bordered="false" :padding="0" dis-hover>
|
|
3
|
+
<!-- 如果myConfig.modetype为1,则显示 -->
|
|
4
|
+
<template v-if="myConfig.modetype === '1'">
|
|
5
|
+
<!-- 如果showTitle为true,则显示 -->
|
|
6
|
+
<p v-if="showTitle" @click="toggle" style="cursor: pointer">
|
|
7
|
+
<Row
|
|
8
|
+
type="flex"
|
|
9
|
+
justify="start"
|
|
10
|
+
align="middle"
|
|
11
|
+
style="margin-top: 14px; margin-bottom: 14px"
|
|
12
|
+
>
|
|
13
|
+
<!-- 如果showGrid为true,则显示icon-custom-pack,否则显示icon-custom-spread -->
|
|
14
|
+
<Icon
|
|
15
|
+
custom="iconfont icon-custom-pack"
|
|
16
|
+
color="#f3b352"
|
|
17
|
+
v-show="showGrid"
|
|
18
|
+
size="14"
|
|
19
|
+
/>
|
|
20
|
+
<Icon
|
|
21
|
+
v-show="!showGrid"
|
|
22
|
+
color="#f3b352"
|
|
23
|
+
custom="iconfont icon-custom-spread"
|
|
24
|
+
size="14"
|
|
25
|
+
/>
|
|
26
|
+
<!-- 显示myConfig.title -->
|
|
27
|
+
<span
|
|
28
|
+
style="
|
|
29
|
+
margin-left: 10px;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
font-weight: bold;
|
|
32
|
+
"
|
|
33
|
+
v-text="myConfig.title"
|
|
34
|
+
/>
|
|
35
|
+
</Row>
|
|
36
|
+
</p>
|
|
37
|
+
<!-- 显示分割线 -->
|
|
38
|
+
<Divider
|
|
39
|
+
style="margin-left: 24px; margin-top: 0px; margin-bottom: 10px"
|
|
40
|
+
/>
|
|
41
|
+
</template>
|
|
42
|
+
|
|
43
|
+
<!-- 如果myConfig.modetype为2,则显示 -->
|
|
44
|
+
<template v-if="myConfig.modetype === '2'">
|
|
45
|
+
<div v-if="showTitle" style="margin-bottom: 10px">
|
|
46
|
+
<span class="efuture-title-verticalline" /><span
|
|
47
|
+
style="font-size: 14px; font-weight: bold"
|
|
48
|
+
v-text="myConfig.title"
|
|
49
|
+
/>
|
|
50
|
+
</div>
|
|
51
|
+
</template>
|
|
52
|
+
|
|
53
|
+
<!-- 插槽相关面板 -->
|
|
54
|
+
<div v-show="showGrid">
|
|
55
|
+
<slot
|
|
56
|
+
v-if="$slots[myConfig.slot]"
|
|
57
|
+
:name="myConfig.slot"
|
|
58
|
+
:formData="formData"
|
|
59
|
+
:config="config"
|
|
60
|
+
:dictData="dictData"
|
|
61
|
+
:doAction="doAction"
|
|
62
|
+
:dataInfo="dataInfo"
|
|
63
|
+
></slot>
|
|
64
|
+
</div>
|
|
65
|
+
</Card>
|
|
66
|
+
</template>
|
|
67
|
+
<script>
|
|
68
|
+
export default {
|
|
69
|
+
name: "BillInfoPanelSlotPanel",
|
|
70
|
+
components: {},
|
|
71
|
+
props: {
|
|
72
|
+
config: {
|
|
73
|
+
type: Object,
|
|
74
|
+
default: () => {
|
|
75
|
+
return {};
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
dictData: {
|
|
79
|
+
type: Object,
|
|
80
|
+
default: null,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
data() {
|
|
84
|
+
return {
|
|
85
|
+
myConfig: {
|
|
86
|
+
modetype: "1",
|
|
87
|
+
},
|
|
88
|
+
showGrid: true,
|
|
89
|
+
showTitle: true,
|
|
90
|
+
dataInfo: {},
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
computed: {},
|
|
94
|
+
methods: {
|
|
95
|
+
init() {
|
|
96
|
+
this.myConfig = Object.assign({}, this.config);
|
|
97
|
+
},
|
|
98
|
+
toggle() {
|
|
99
|
+
this.showGrid = !this.showGrid;
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 设置数据
|
|
104
|
+
*/
|
|
105
|
+
setData(data = [], flag = "set") {
|
|
106
|
+
console.log("🚀 ~ setData ~ data:", data);
|
|
107
|
+
this.dataInfo = data;
|
|
108
|
+
// switch (flag) {
|
|
109
|
+
// case "set":
|
|
110
|
+
// // console.log("初始化表格数据触发");
|
|
111
|
+
// // this.dataList = [...data];
|
|
112
|
+
// break;
|
|
113
|
+
|
|
114
|
+
// case "I":
|
|
115
|
+
// // console.log("手工全量编辑触发");
|
|
116
|
+
// break;
|
|
117
|
+
|
|
118
|
+
// default:
|
|
119
|
+
// break;
|
|
120
|
+
// }
|
|
121
|
+
},
|
|
122
|
+
clearData() {},
|
|
123
|
+
setReadOnly(value) {
|
|
124
|
+
console.log("🚀 ~ setReadOnly ~ value:", value);
|
|
125
|
+
},
|
|
126
|
+
doAction(params) {
|
|
127
|
+
this.$emit("doAction", params);
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
mounted() {
|
|
131
|
+
// console.log("我继承覆写了999999");
|
|
132
|
+
},
|
|
133
|
+
created() {
|
|
134
|
+
this.init();
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
</script>
|
|
138
|
+
|
|
139
|
+
<style lang="scss" scoped></style>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
:padding="0"
|
|
5
5
|
dis-hover
|
|
6
6
|
:bordered="false"
|
|
7
|
-
style="background: #
|
|
7
|
+
style="background: #fafcff; padding: 14px 16px 14px 16px"
|
|
8
8
|
>
|
|
9
9
|
<div ref="toolbar" style="padding-bottom: 14px">
|
|
10
10
|
<BillListPanelQueryBar
|
|
@@ -68,7 +68,13 @@
|
|
|
68
68
|
:config="changeGridConfig"
|
|
69
69
|
:dictData="dictData"
|
|
70
70
|
@dbclick="dbclick"
|
|
71
|
-
|
|
71
|
+
>
|
|
72
|
+
<!-- 组件原始slot透传 -->
|
|
73
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
74
|
+
<slot :name="name" v-bind="slotData || {}"></slot>
|
|
75
|
+
</template>
|
|
76
|
+
<!-- ============================ -->
|
|
77
|
+
</BillListPanelTable>
|
|
72
78
|
</Card>
|
|
73
79
|
</Card>
|
|
74
80
|
</div>
|
|
@@ -76,7 +82,8 @@
|
|
|
76
82
|
<script>
|
|
77
83
|
import billquerygrid from "../billquerygrid.vue";
|
|
78
84
|
import BillListPanelTable from "./BillListPanelTable.vue";
|
|
79
|
-
import BillListPanelQueryBar from "./BillListPanelQueryBar.vue";
|
|
85
|
+
// import BillListPanelQueryBar from "./BillListPanelQueryBar.vue";
|
|
86
|
+
import BillListPanelQueryBar from "../RewriteListdetails/BillListPanelV3QueryBar.vue";
|
|
80
87
|
|
|
81
88
|
export default {
|
|
82
89
|
name: "BillListPanel",
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
<template #loading>
|
|
33
33
|
<Spin size="large" style="display: inline-block"></Spin>
|
|
34
34
|
</template>
|
|
35
|
+
<!-- 组件原始slot透传 -->
|
|
36
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
37
|
+
<slot :name="name" v-bind="slotData || {}"></slot>
|
|
38
|
+
</template>
|
|
39
|
+
<!-- ============================ -->
|
|
35
40
|
</vxe-grid>
|
|
36
41
|
<!-- 表格覆写点结束 -->
|
|
37
42
|
</Card>
|
|
@@ -263,6 +268,12 @@ export default {
|
|
|
263
268
|
...(item.resizable && {
|
|
264
269
|
resizable: item.resizable,
|
|
265
270
|
}),
|
|
271
|
+
...(item.fixed && {
|
|
272
|
+
fixed: item.fixed,
|
|
273
|
+
}),
|
|
274
|
+
...(item.slots && {
|
|
275
|
+
slots: item.slots,
|
|
276
|
+
}),
|
|
266
277
|
sortable: true,
|
|
267
278
|
...(columnsItemType && {
|
|
268
279
|
type: columnsItemType,
|
|
@@ -8,7 +8,13 @@
|
|
|
8
8
|
:dictData="dictData"
|
|
9
9
|
:moduleMethod="moduleMethod"
|
|
10
10
|
@doAction="doAction"
|
|
11
|
-
|
|
11
|
+
>
|
|
12
|
+
<!-- 组件原始slot透传 -->
|
|
13
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
14
|
+
<slot :name="name" v-bind="slotData || {}"></slot>
|
|
15
|
+
</template>
|
|
16
|
+
<!-- ============================ -->
|
|
17
|
+
</BillListPanel>
|
|
12
18
|
<!-- 列表覆写结束 -->
|
|
13
19
|
|
|
14
20
|
<!-- 详情覆写开始 -->
|
|
@@ -37,6 +43,11 @@
|
|
|
37
43
|
<Divider style="margin-top: 16px; margin-bottom: 0px" />
|
|
38
44
|
</Card>
|
|
39
45
|
</template>
|
|
46
|
+
<!-- 组件原始slot透传 -->
|
|
47
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
48
|
+
<slot :name="name" v-bind="slotData || {}"></slot>
|
|
49
|
+
</template>
|
|
50
|
+
<!-- ============================ -->
|
|
40
51
|
</BillInfoPanel>
|
|
41
52
|
<!-- 详情覆写结束 -->
|
|
42
53
|
|
|
@@ -317,7 +328,10 @@ export default {
|
|
|
317
328
|
},
|
|
318
329
|
onSubmitBefore() {
|
|
319
330
|
let flag = true;
|
|
320
|
-
if (
|
|
331
|
+
if (
|
|
332
|
+
this.$parent &&
|
|
333
|
+
typeof this.$parent.onSubmitBefore === "function"
|
|
334
|
+
) {
|
|
321
335
|
flag = this.$parent.onSubmitBefore();
|
|
322
336
|
}
|
|
323
337
|
return flag;
|
|
@@ -94,6 +94,16 @@
|
|
|
94
94
|
@click="addData"
|
|
95
95
|
>新增</Button
|
|
96
96
|
>
|
|
97
|
+
<Button
|
|
98
|
+
v-if="
|
|
99
|
+
!addDataBtnFlag &&
|
|
100
|
+
btnData.length > 0
|
|
101
|
+
"
|
|
102
|
+
:icon="btnData[0].icon"
|
|
103
|
+
:customIcon="btnData[0].customIcon"
|
|
104
|
+
@click="action(btnData[0].name)"
|
|
105
|
+
>{{ btnData[0].text }}</Button
|
|
106
|
+
>
|
|
97
107
|
<Button
|
|
98
108
|
v-if="!btnFlag && moreBtnFlag"
|
|
99
109
|
icon="ios-arrow-down"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template>
|
|
1
|
+
<template>
|
|
2
2
|
<div style="display: flex; align-items: center;">
|
|
3
3
|
<Icon custom="iconfont icon-custom-delcond" @click.stop="doDel" size="20" color="#515a6e" style="cursor:pointer;margin-bottom:10px;padding-right:8px"/>
|
|
4
4
|
<FormBox ref="form" :config="form" @inputValue="formChanged" style="flex:1"/>
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
default:null
|
|
79
79
|
}
|
|
80
80
|
} ,
|
|
81
|
-
mounted () {
|
|
81
|
+
mounted () {
|
|
82
82
|
this.$nextTick(() => {
|
|
83
83
|
if (this.valueData) {
|
|
84
84
|
if (this.valueData.field){
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
let obj = {};
|
|
98
98
|
obj.index = this.curIndex;
|
|
99
99
|
obj.form = this.$refs.form.getData();
|
|
100
|
-
this.$emit('inputValue', obj);
|
|
100
|
+
this.$emit('inputValue', obj);
|
|
101
101
|
},
|
|
102
102
|
init() {
|
|
103
103
|
this.initField();
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
let fieldData = [];
|
|
107
107
|
if (this.config.items && this.config.items.length > 0) {
|
|
108
108
|
this.config.items.forEach(el => {
|
|
109
|
-
if (el.name && el.label) {
|
|
109
|
+
if (el.name && el.label && el.condition) {
|
|
110
110
|
fieldData.push({code:el.name,name:el.label});
|
|
111
111
|
this.dataType[el.name] = Object.assign({},el, {name:'value'});
|
|
112
112
|
this.dataType[el.name].operData = this.getOperData(el);
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
name: '不等于',
|
|
143
143
|
code: '<>'
|
|
144
144
|
});
|
|
145
|
-
}
|
|
145
|
+
}
|
|
146
146
|
if (el.type === 'TextBox') {
|
|
147
147
|
tempData.push({
|
|
148
148
|
name: '不等于',
|
|
@@ -152,11 +152,11 @@
|
|
|
152
152
|
name: '包含',
|
|
153
153
|
code: 'LIKE'
|
|
154
154
|
});
|
|
155
|
-
}
|
|
155
|
+
}
|
|
156
156
|
if (el.setOperData) {
|
|
157
157
|
tempData = el.setOperData(el,tempData);
|
|
158
158
|
}
|
|
159
|
-
return tempData;
|
|
159
|
+
return tempData;
|
|
160
160
|
},
|
|
161
161
|
fieldChanged(e) {
|
|
162
162
|
let self = this;
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
oper.data = this.$Method.copy(config.operData);
|
|
170
170
|
oper.readOnly = false;
|
|
171
171
|
obj.push(oper);
|
|
172
|
-
config.name ='value';
|
|
172
|
+
config.name ='value';
|
|
173
173
|
config.label = '';
|
|
174
174
|
config.readOnly = false;
|
|
175
175
|
config.visible = true;
|
|
@@ -200,8 +200,8 @@
|
|
|
200
200
|
}
|
|
201
201
|
self.$refs.form.updateItemsConfig(obj);
|
|
202
202
|
self.$nextTick(() => {
|
|
203
|
-
self.$refs.form.setValue('oper',operValue);
|
|
204
|
-
self.$refs.form.setValue('value','');
|
|
203
|
+
self.$refs.form.setValue('oper',operValue);
|
|
204
|
+
self.$refs.form.setValue('value','');
|
|
205
205
|
});
|
|
206
206
|
return true;
|
|
207
207
|
},
|
|
@@ -221,4 +221,4 @@
|
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
223
|
};
|
|
224
|
-
</script>
|
|
224
|
+
</script>
|
|
@@ -1,51 +1,116 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
<div>
|
|
3
|
+
<component
|
|
4
|
+
ref="layout"
|
|
5
|
+
:is="uiLayoutType"
|
|
6
|
+
:config="uiconfig"
|
|
7
|
+
:dictData="globalConfig.dictData"
|
|
8
|
+
:moduleMethod="globalConfig.userModuleMethod"
|
|
9
|
+
@handleSuccessAfter="handleSuccessAfter"
|
|
10
|
+
@onSubmitBefore="onSubmitBefore"
|
|
11
|
+
@doAction="doAction"
|
|
12
|
+
>
|
|
13
|
+
<!-- 组件原始slot透传 -->
|
|
14
|
+
<template v-for="(_, name) in $slots" #[name]="slotData">
|
|
15
|
+
<slot :name="name" v-bind="slotData || {}"></slot>
|
|
16
|
+
</template>
|
|
17
|
+
<!-- ============================ -->
|
|
18
|
+
</component>
|
|
19
|
+
<Modal
|
|
20
|
+
title="附件"
|
|
21
|
+
v-model="showDetailAppendix"
|
|
22
|
+
:width="appendixCurrentWidth"
|
|
23
|
+
:footer-hide="true"
|
|
24
|
+
>
|
|
25
|
+
<AppendixBoxs
|
|
26
|
+
v-if="detalAppendixFlag"
|
|
27
|
+
ref="detailappendix"
|
|
28
|
+
:config="billDetailAppendixConfig"
|
|
29
|
+
@doAction="doAction"
|
|
30
|
+
/>
|
|
31
|
+
</Modal>
|
|
32
|
+
<Modal
|
|
33
|
+
title="模版打印"
|
|
34
|
+
v-model="showPrintMode"
|
|
35
|
+
:width="appendixCurrentWidth"
|
|
36
|
+
:footer-hide="true"
|
|
37
|
+
:fullscreen="true"
|
|
38
|
+
class-name="print-bill-panel-modal"
|
|
39
|
+
>
|
|
40
|
+
<iframe
|
|
41
|
+
ref="iframetemplate"
|
|
42
|
+
v-if="printModeReset"
|
|
43
|
+
:src="printModeUrl"
|
|
44
|
+
width="100%"
|
|
45
|
+
height="100%"
|
|
46
|
+
allowtransparency="true"
|
|
47
|
+
frameborder="0"
|
|
48
|
+
></iframe>
|
|
49
|
+
</Modal>
|
|
50
|
+
<BillAsyncImport
|
|
51
|
+
v-if="importReset"
|
|
52
|
+
ref="billAsyncImport"
|
|
53
|
+
:config="billAsyncImportConfig"
|
|
54
|
+
/>
|
|
55
|
+
<BillImport
|
|
56
|
+
v-if="importReset"
|
|
57
|
+
ref="billImport"
|
|
58
|
+
:config="billImportConfig"
|
|
59
|
+
>
|
|
60
|
+
</BillImport>
|
|
61
|
+
<Modal
|
|
62
|
+
title="合同模版"
|
|
63
|
+
v-model="ContractModalShowType"
|
|
64
|
+
:width="ContractModalWidth"
|
|
65
|
+
:mask-closable="false"
|
|
66
|
+
:footer-hide="true"
|
|
67
|
+
class-name="contract-print-panel-modal"
|
|
68
|
+
@on-cancel="HideContractPrintModal"
|
|
69
|
+
>
|
|
70
|
+
<iframe
|
|
71
|
+
ref="iframetemplate"
|
|
72
|
+
v-if="ContractModalContentShowType"
|
|
73
|
+
:src="ContractModalIframeUrl"
|
|
74
|
+
width="100%"
|
|
75
|
+
height="100%"
|
|
76
|
+
allowtransparency="true"
|
|
77
|
+
frameborder="0"
|
|
78
|
+
></iframe>
|
|
79
|
+
</Modal>
|
|
80
|
+
</div>
|
|
16
81
|
</template>
|
|
17
82
|
|
|
18
83
|
<script>
|
|
19
|
-
import Base from
|
|
20
|
-
import AppendixBoxs from
|
|
21
|
-
import BillAsyncImport from
|
|
22
|
-
import BillImport from
|
|
23
|
-
import ContractPrintMixins from
|
|
84
|
+
import Base from "./base.vue";
|
|
85
|
+
import AppendixBoxs from "./appendix.vue";
|
|
86
|
+
import BillAsyncImport from "./billasyncimport.vue";
|
|
87
|
+
import BillImport from "./billimport.vue";
|
|
88
|
+
import ContractPrintMixins from "@/components/base/ContractPrintMixins";
|
|
24
89
|
export default {
|
|
25
|
-
name:
|
|
90
|
+
name: "BillTemplate",
|
|
26
91
|
extends: Base,
|
|
27
92
|
mixins: [ContractPrintMixins],
|
|
28
|
-
components:{AppendixBoxs,BillAsyncImport,BillImport},
|
|
93
|
+
components: { AppendixBoxs, BillAsyncImport, BillImport },
|
|
29
94
|
computed: {
|
|
30
|
-
uiLayoutType
|
|
31
|
-
return
|
|
95
|
+
uiLayoutType() {
|
|
96
|
+
return "m" + this.uiconfig.layoutType;
|
|
32
97
|
},
|
|
33
|
-
appendixCurrentWidth
|
|
98
|
+
appendixCurrentWidth() {
|
|
34
99
|
return this.$Store.state.app.clientWidth * 0.8;
|
|
35
100
|
},
|
|
36
101
|
},
|
|
37
102
|
};
|
|
38
103
|
</script>
|
|
39
104
|
<style lang="less">
|
|
40
|
-
.print-bill-panel-modal{
|
|
41
|
-
.ivu-modal-body{
|
|
42
|
-
padding: 0px!important;
|
|
43
|
-
overflow: hidden!important;
|
|
105
|
+
.print-bill-panel-modal {
|
|
106
|
+
.ivu-modal-body {
|
|
107
|
+
padding: 0px !important;
|
|
108
|
+
overflow: hidden !important;
|
|
44
109
|
}
|
|
45
110
|
}
|
|
46
|
-
.contract-print-panel-modal{
|
|
47
|
-
.ivu-modal-body{
|
|
48
|
-
height:300px!important;
|
|
111
|
+
.contract-print-panel-modal {
|
|
112
|
+
.ivu-modal-body {
|
|
113
|
+
height: 300px !important;
|
|
49
114
|
}
|
|
50
115
|
}
|
|
51
116
|
</style>
|