cloud-web-corejs 1.1.0-dev.30 → 1.1.0-dev.31

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.
@@ -1,242 +0,0 @@
1
- <template>
2
- <biz-tab-list-page
3
- ref="bizTab"
4
- :listLabel="$t1('列表')"
5
- :titleField="BILL.titleField"
6
- :addTitle="$t1('新增')"
7
- :behavior="tabBehavior"
8
- @refresh-list="searchEvent"
9
- >
10
- <!-- ===== 列表页签 ===== -->
11
- <template #list>
12
- <vxe-grid
13
- ref="table-m1"
14
- v-bind="vxeOption"
15
- @resizable-change="$vxeTableUtil.onColumnWitchChange"
16
- @custom="$vxeTableUtil.customHandle"
17
- >
18
- <template #form>
19
- <div class="clearfix screen-btns">
20
- <div class="fl">
21
- <vxe-button
22
- status="primary"
23
- type="text"
24
- plain
25
- class="button-sty"
26
- icon="el-icon-plus"
27
- @click="openAdd"
28
- >{{ $t1("新增") }}</vxe-button
29
- >
30
- <!-- demo 用:现场切换「提交/审批完成后」的页签行为 -->
31
- <el-switch
32
- v-model="closeAfterWf"
33
- class="behavior-switch"
34
- :active-text="$t1('提交/通过后关闭页签回列表')"
35
- ></el-switch>
36
- </div>
37
- <div class="fr">
38
- <vxe-button
39
- icon="el-icon-brush"
40
- class="button-sty"
41
- type="text"
42
- status="primary"
43
- plain
44
- @click="resetEvent"
45
- >{{ $t1("重置") }}</vxe-button
46
- >
47
- <vxe-button
48
- status="warning"
49
- icon="el-icon-search"
50
- class="button-sty"
51
- @click="searchEvent"
52
- >{{ $t1("搜索") }}</vxe-button
53
- >
54
- </div>
55
- </div>
56
- <vxe-form
57
- ref="form"
58
- class="screen-box"
59
- title-width="92px"
60
- title-align="right"
61
- :data="formData"
62
- @submit="searchEvent"
63
- @reset="resetEvent"
64
- >
65
- <vxe-form-item :title="$t1('单号') + ':'" field="sn">
66
- <template v-slot>
67
- <el-input v-model="formData.sn" size="small" clearable />
68
- </template>
69
- </vxe-form-item>
70
- <vxe-form-item :title="$t1('阶梯价名称') + ':'" field="ladderName">
71
- <template v-slot>
72
- <el-input v-model="formData.ladderName" size="small" clearable />
73
- </template>
74
- </vxe-form-item>
75
- <vxe-form-item :title="$t1('单据状态') + ':'" field="status">
76
- <template v-slot>
77
- <el-select
78
- v-model="formData.status"
79
- size="small"
80
- clearable
81
- @clear="formData.status = null"
82
- >
83
- <el-option
84
- v-for="(item, key) in STATUS_MAP"
85
- :key="key"
86
- :label="item.label"
87
- :value="Number(key)"
88
- ></el-option>
89
- </el-select>
90
- </template>
91
- </vxe-form-item>
92
- </vxe-form>
93
- </template>
94
-
95
- <template #sn="{ row, rowIndex }">
96
- <a href="javascript:void(0);" class="a-link" @click="openDetail(row, rowIndex)">
97
- {{ row.sn }}
98
- </a>
99
- </template>
100
- <template #status="{ row }">
101
- <div :class="getStatus(row).cls">{{ getStatus(row).label }}</div>
102
- </template>
103
- <template #operate="{ row, rowIndex }">
104
- <a href="javascript:void(0);" class="a-link" @click="openDetail(row, rowIndex)">
105
- <el-tooltip
106
- :enterable="false"
107
- effect="dark"
108
- :content="$t1('查看')"
109
- placement="top"
110
- popper-class="tooltip-skin"
111
- ><i class="el-icon-view"
112
- /></el-tooltip>
113
- </a>
114
- </template>
115
- </vxe-grid>
116
- </template>
117
-
118
- <!-- ===== 详情页签(新增/查看共用同一个组件) ===== -->
119
- <template #detail="{ tab }">
120
- <bill-detail :tab="tab" />
121
- </template>
122
- </biz-tab-list-page>
123
- </template>
124
-
125
- <script>
126
- /**
127
- * demo C:自定义控制器 + 流程(std 手写页面那套写法)。
128
- *
129
- * 与 demo B 的区别只在数据通道:这里是 /ladderPrice/get|save|update 这类自己写的接口,
130
- * demo B 是通用 bd_api + formCode。页签、流程、翻单这些用法完全一样。
131
- *
132
- * 接口与 wfCode 见 ./billConfig.js;写法对齐本仓库 views/pmd/price/ladderPrice/。
133
- * 菜单/路由:@base/views/demo/bizTab/wf/list(本地已在 router/modules/customer.js 注册)
134
- */
135
- import BizTabListPage from "@base/components/bizTab/BizTabListPage.vue";
136
- import billDetail from "./detail.vue";
137
- import { BILL, STATUS_MAP } from "./billConfig";
138
-
139
- export default {
140
- name: "demo_bizTab_wf:list",
141
- components: { BizTabListPage, billDetail },
142
- data() {
143
- return {
144
- BILL,
145
- STATUS_MAP,
146
- vxeOption: {},
147
- formData: {},
148
- closeAfterWf: false,
149
- };
150
- },
151
- computed: {
152
- tabBehavior() {
153
- if (!this.closeAfterWf) return "refreshCurrent";
154
- return {
155
- submit: "closeToList",
156
- agree: "closeToList",
157
- default: "refreshCurrent",
158
- };
159
- },
160
- },
161
- mounted() {
162
- this.initTableList();
163
- },
164
- methods: {
165
- searchEvent() {
166
- this.$refs["table-m1"].commitProxy("reload");
167
- },
168
- resetEvent() {
169
- this.formData = {};
170
- this.$refs["table-m1"].commitProxy("reload");
171
- },
172
- getStatus(row) {
173
- return STATUS_MAP[row.status] || { label: "", cls: "" };
174
- },
175
- // 新增页签也传快照:保存成功后新单会被插到序列首位,翻单按钮随即可用
176
- openAdd() {
177
- this.$refs.bizTab.openAdd(null, { navRows: this.getListRows() });
178
- },
179
- // 把当前列表顺序和行下标一起传进去,详情头部就有「上一单/下一单」
180
- openDetail(row, rowIndex) {
181
- this.$refs.bizTab.openDetail(row, null, {
182
- navRows: this.getListRows(),
183
- navIndex: rowIndex != null ? rowIndex : -1,
184
- });
185
- },
186
- getListRows() {
187
- let grid = this.$refs["table-m1"];
188
- return grid ? grid.getTableData().fullData : null;
189
- },
190
- initTableList() {
191
- let tableOption = {
192
- vue: this,
193
- tableRef: "table-m1",
194
- tableName: "demo-bizTab-wf-list-m1",
195
- path: BILL.urls.listPage,
196
- param: () => {
197
- return { ...this.formData };
198
- },
199
- columns: [
200
- { type: "checkbox", width: 48, resizable: false, fixed: "left" },
201
- {
202
- title: this.$t1("单号"),
203
- field: "sn",
204
- width: 150,
205
- fixed: "left",
206
- slots: { default: "sn" },
207
- },
208
- { title: this.$t1("阶梯价名称"), field: "ladderName", width: 180 },
209
- {
210
- title: this.$t1("单据状态"),
211
- field: "status",
212
- width: 100,
213
- slots: { default: "status" },
214
- },
215
- { title: this.$t1("开始时间"), field: "startDate", width: 120 },
216
- { title: this.$t1("结束时间"), field: "endDate", width: 120 },
217
- { title: this.$t1("机构名称"), field: "saleOrgNames", minWidth: 180 },
218
- { title: this.$t1("备注"), field: "memo", minWidth: 150 },
219
- { title: this.$t1("创建人"), field: "createBy", width: 110 },
220
- { title: this.$t1("创建时间"), field: "createDate", width: 160 },
221
- {
222
- title: "",
223
- width: 47,
224
- fixed: "right",
225
- sortable: false,
226
- slots: { default: "operate" },
227
- },
228
- ],
229
- };
230
- this.$vxeTableUtil.initVxeTable(tableOption).then((opts) => {
231
- this.vxeOption = opts;
232
- });
233
- },
234
- },
235
- };
236
- </script>
237
-
238
- <style scoped>
239
- .behavior-switch {
240
- margin-left: 16px;
241
- }
242
- </style>