Commit a4aeeb1ef2444312dc703d96481a635b2b8504c6

Authored by 杨鑫
1 parent e0274546

'最新'

admin-web-master/dist.zip deleted
No preview for this file type
admin-web-master/src/api/dataSta.js
... ... @@ -7,6 +7,14 @@ export function orderGetAll(data) {
7 7 data
8 8 })
9 9 }
  10 +// 订单不分页管理查询
  11 +export function getAllNotPage(data) {
  12 + return request({
  13 + url: '/order/getAllNotPage',
  14 + method: 'post',
  15 + data
  16 + })
  17 +}
10 18 //计算毛利
11 19 export function calculateGrossProfit(data) {
12 20 return request({
... ...
admin-web-master/src/api/stocksForewarn.js
1 1 // import request from '@/api/map'
2   -import request from '@/utils/request'
  2 +import request from '@/utils/request2'
3 3 //库存阈值设置
4 4 export function setThreshold(data) {
5 5 return request({
... ...
admin-web-master/src/components/add/addmb.vue
1 1 <template>
2   - <div>
3   - <TitleWithCircle title="模版" style="margin-bottom: 20px;" />
4   - <el-form :model="forminfo" :rules="rulesmb" ref="ruleForm1" label-width="130px" class="demo-ruleForm">
5   - <el-row :gutter="20">
6   - <el-col :span="12" >
7   - <el-form-item label="模版名称" prop="templateName">
8   - <el-input v-model="forminfo.templateName" placeholder="请输入" maxlength="20"></el-input>
9   - </el-form-item>
10   - </el-col>
11   - <el-col :span="12" style="display: flex;align-items: center;">
12   - <el-form-item label="word模板" prop="templateAttachment" :style="forminfo.templateAttachment?'width: 100%;':''">
13   - <upfile :accept="'.docx,.doc'" filePath="mb" inputtype="templateAttachment" :value="forminfo.templateAttachment"
14   - @changimg="e=>changimg(e,'templateAttachment')"></upfile>
15   -
16   - </el-form-item>
17   - <div v-if="!forminfo.templateAttachment" class="greens tableBtn iterem" @click.stop="openfile($baseURL+'/zsfwzxt/mb/fa0cc984-e1ac-474e-a579-89ea79cc9b8e-ces合同.docx')">模版文件</div>
18   - </el-col>
19   - </el-row>
20   - </el-form>
21   - <TitleWithCircle title="合同信息" style="margin-bottom: 20px;" />
22   - <mbadd :list1="list2" :iscopy="true"/>
23   - <TitleWithCircle title="其他信息管理" />
24   - <div style="margin-left: 65px;margin-top: 20px;margin-bottom: 20px;">
25   - <el-button @click="mingShow()" style="background-color: #3F9B6A;color: #fff;">添加</el-button>
26   - </div>
27   - <mbadd :list1="list1" :iscopy="true"/>
28   - <div style="margin-top: 20px;margin-left: 65px;">
29   - <div style="padding: 0px 20px 0px 0px">
30   - <el-table :data="list1"
31   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
32   - <el-table-column label="字段排序">
33   - <template slot-scope="scope">
34   - {{scope.$index + 1}}
35   - </template>
36   - </el-table-column>
37   - <el-table-column prop="notes" label="字段名称">
38   - <template slot-scope="scope">
39   - {{scope.row.name?scope.row.name : '-'}}
40   - </template>
41   - </el-table-column>
42   - <el-table-column prop="notes" label="字段key">
43   - <template slot-scope="scope">
44   - {{scope.row.key?scope.row.key : '-'}}
45   - </template>
46   - </el-table-column>
47   - <el-table-column prop="notes" label="字段类型">
48   - <template slot-scope="scope">
49   - {{scope.row.type?scope.row.type : '-'}}
50   - </template>
51   - </el-table-column>
52   - <el-table-column prop="notes" label="是否必填">
53   - <template slot-scope="scope">
54   - {{scope.row.isrequired?scope.row.isrequired : '-'}}
55   - </template>
56   - </el-table-column>
57   - <el-table-column prop="notes" label="字段宽度">
58   - <template slot-scope="scope">
59   - {{scope.row.width?scope.row.width : '-'}}
60   - </template>
61   - </el-table-column>
62   - <el-table-column prop="notes" label="限制规则">
63   - <template slot-scope="scope">
64   - {{scope.row.length?scope.row.length : '-'}}
65   - </template>
66   - </el-table-column>
67   - <el-table-column label="操作">
68   - <template slot-scope="scope">
69   - <div @click="MingDelete(scope.$index)" class="tableBtn greens">删除</div>
70   - </template>
71   - </el-table-column>
72   - </el-table>
73   - </div>
74   - </div>
75   - <div v-if="info.id" style="margin-top: 20px;margin-left: 65px;">
76   - <el-button @click="close()" class="buttonHover"
77   - style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">返回</el-button>
78   - </div>
79   - <div v-else style="margin-top: 20px;margin-left: 65px;">
80   - <el-button @click="add()" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
81   - <el-button @click="close()" class="buttonHover"
82   - style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">取消</el-button>
83   - </div>
84   - <el-dialog :visible.sync="addMing" title="添加" style="padding: 0;z-index: 9999999;" width="50%" append-to-body center
85   - :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
86   - <div v-if="addMing">
87   - <el-form :model="addmbitem" :rules="ruleaddmbitem" ref="addmbitem" label-width="130px" class="demo-ruleForm">
88   - <el-form-item label="字段名称" prop="name">
89   - <el-input v-model="addmbitem.name" placeholder="请输入" maxlength="20"></el-input>
90   - </el-form-item>
91   - <el-form-item label="字段key" prop="key">
92   - <el-input v-model="addmbitem.key" placeholder="请输入" maxlength="20"></el-input>
93   - </el-form-item>
94   - <el-form-item label="字段类型" prop="type">
95   - <el-select v-model="addmbitem.type" placeholder="请选择" style="width: 100%;">
96   - <el-option v-for="(item,index) in mobantype" :key="index" :label="item.label" :value="item.value"></el-option>
97   - </el-select>
98   - </el-form-item>
99   - <el-form-item label="选择内容" v-if="addmbitem.type == '下拉选择'">
100   - <el-button @click="additemlist" style="background-color: #3F9B6A;color: #fff;">添加</el-button>
101   - <el-input v-for="(item,index) in addmbitem.list" :key="index" v-model="item.label" placeholder="请输入" maxlength="20" @input="e=>inputvalue(e,index)"></el-input>
  2 + <div>
  3 + <TitleWithCircle title="模版" style="margin-bottom: 20px;" />
  4 + <el-form :model="forminfo" :rules="rulesmb" ref="ruleForm1" label-width="130px" class="demo-ruleForm">
  5 + <el-row :gutter="20">
  6 + <el-col :span="12">
  7 + <el-form-item label="模版名称" prop="templateName">
  8 + <el-input v-model="forminfo.templateName" placeholder="请输入" maxlength="20"></el-input>
  9 + </el-form-item>
  10 + </el-col>
  11 + <el-col :span="12" style="display: flex;align-items: center;">
  12 + <el-form-item label="word模板" prop="templateAttachment"
  13 + :style="forminfo.templateAttachment?'width: 100%;':''">
  14 + <upfile :accept="'.docx,.doc'" filePath="mb" inputtype="templateAttachment"
  15 + :value="forminfo.templateAttachment" @changimg="e=>changimg(e,'templateAttachment')">
  16 + </upfile>
102 17  
103   - </el-form-item>
104   - <el-form-item label="是否必填" prop="isrequired">
105   - <el-select v-model="addmbitem.isrequired" placeholder="请选择" style="width: 100%;">
106   - <el-option label="是" value="是"></el-option>
107   - <el-option label="否" value="否"></el-option>
108   - </el-select>
109   - </el-form-item>
110   - <el-form-item label="字段宽度" prop="width">
111   - <el-select v-model="addmbitem.width" placeholder="请选择" style="width: 100%;">
112   - <el-option label="50%(半行)" value="50%(半行)"></el-option>
113   - <el-option label="100%(一行)" value="100%(一行)"></el-option>
114   - </el-select>
115   - </el-form-item>
116   - <el-form-item label="限制规则" prop="length">
117   - <el-input v-model.number="addmbitem.length" placeholder="请输入" maxlength="20"></el-input>
118   - </el-form-item>
119   - </el-form>
120   - </div>
121   - <template #footer>
122   - <div style="display: flex; justify-content: flex-end; align-items: center;">
123   - <el-button @click="minSev" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
124   - <el-button @click="mingClose" class="buttonHover"
125   - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
126   - </div>
127   - </template>
128   - </el-dialog>
129   - </div>
  18 + </el-form-item>
  19 + <div v-if="!forminfo.templateAttachment" class="greens tableBtn iterem"
  20 + @click.stop="openfile($baseURL+'/zsfwzxt/mb/fa0cc984-e1ac-474e-a579-89ea79cc9b8e-ces合同.docx')">
  21 + 模版文件</div>
  22 + </el-col>
  23 + </el-row>
  24 + </el-form>
  25 + <TitleWithCircle title="合同信息" style="margin-bottom: 20px;" />
  26 + <mbadd :list1="list2" :iscopy="true" />
  27 + <TitleWithCircle title="其他信息管理" />
  28 + <div style="margin-left: 65px;margin-top: 20px;margin-bottom: 20px;">
  29 + <el-button @click="mingShow()" style="background-color: #3F9B6A;color: #fff;">添加</el-button>
  30 + </div>
  31 + <mbadd :list1="list1" :iscopy="true" />
  32 + <div style="margin-top: 20px;margin-left: 65px;">
  33 + <div style="padding: 0px 20px 0px 0px">
  34 + <el-table :data="list1"
  35 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  36 + <el-table-column label="字段排序">
  37 + <template slot-scope="scope">
  38 + {{scope.$index + 1}}
  39 + </template>
  40 + </el-table-column>
  41 + <el-table-column prop="notes" label="字段名称">
  42 + <template slot-scope="scope">
  43 + {{scope.row.name?scope.row.name : '-'}}
  44 + </template>
  45 + </el-table-column>
  46 + <el-table-column prop="notes" label="字段key">
  47 + <template slot-scope="scope">
  48 + {{scope.row.key?scope.row.key : '-'}}
  49 + </template>
  50 + </el-table-column>
  51 + <el-table-column prop="notes" label="字段类型">
  52 + <template slot-scope="scope">
  53 + {{scope.row.type?scope.row.type : '-'}}
  54 + </template>
  55 + </el-table-column>
  56 + <el-table-column prop="notes" label="是否必填">
  57 + <template slot-scope="scope">
  58 + {{scope.row.isrequired?scope.row.isrequired : '-'}}
  59 + </template>
  60 + </el-table-column>
  61 + <el-table-column prop="notes" label="字段宽度">
  62 + <template slot-scope="scope">
  63 + {{scope.row.width?scope.row.width : '-'}}
  64 + </template>
  65 + </el-table-column>
  66 + <el-table-column prop="notes" label="限制规则">
  67 + <template slot-scope="scope">
  68 + {{scope.row.length?scope.row.length : '-'}}
  69 + </template>
  70 + </el-table-column>
  71 + <el-table-column label="操作">
  72 + <template slot-scope="scope">
  73 + <div @click="MingDelete(scope.$index)" class="tableBtn greens">删除</div>
  74 + </template>
  75 + </el-table-column>
  76 + </el-table>
  77 + </div>
  78 + </div>
  79 + <div v-if="info.id" style="margin-top: 20px;margin-left: 65px;">
  80 + <el-button @click="close()" class="buttonHover"
  81 + style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">返回</el-button>
  82 + </div>
  83 + <div v-else style="margin-top: 20px;margin-left: 65px;">
  84 + <el-button @click="add()" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  85 + <el-button @click="close()" class="buttonHover"
  86 + style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">取消</el-button>
  87 + </div>
  88 + <el-dialog :visible.sync="addMing" title="添加" style="padding: 0;z-index: 9999999;" width="50%" append-to-body
  89 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  90 + <div v-if="addMing">
  91 + <el-form :model="addmbitem" :rules="ruleaddmbitem" ref="addmbitem" label-width="130px"
  92 + class="demo-ruleForm">
  93 + <el-form-item label="字段名称" prop="name">
  94 + <el-input v-model="addmbitem.name" placeholder="请输入" maxlength="20"></el-input>
  95 + </el-form-item>
  96 + <el-form-item label="字段key" prop="key">
  97 + <el-input v-model="addmbitem.key" placeholder="请输入" maxlength="20"></el-input>
  98 + </el-form-item>
  99 + <el-form-item label="字段类型" prop="type">
  100 + <el-select v-model="addmbitem.type" placeholder="请选择" style="width: 100%;">
  101 + <el-option v-for="(item,index) in mobantype" :key="index" :label="item.label"
  102 + :value="item.value"></el-option>
  103 + </el-select>
  104 + </el-form-item>
  105 + <el-form-item label="选择内容" v-if="addmbitem.type == '下拉选择'">
  106 + <el-button @click="additemlist" style="background-color: #3F9B6A;color: #fff;">添加</el-button>
  107 + <el-input v-for="(item,index) in addmbitem.list" :key="index" v-model="item.label"
  108 + placeholder="请输入" maxlength="20" @input="e=>inputvalue(e,index)"></el-input>
  109 +
  110 + </el-form-item>
  111 + <el-form-item label="是否必填" prop="isrequired">
  112 + <el-select v-model="addmbitem.isrequired" placeholder="请选择" style="width: 100%;">
  113 + <el-option label="是" value="是"></el-option>
  114 + <el-option label="否" value="否"></el-option>
  115 + </el-select>
  116 + </el-form-item>
  117 + <el-form-item label="字段宽度" prop="width">
  118 + <el-select v-model="addmbitem.width" placeholder="请选择" style="width: 100%;">
  119 + <el-option label="50%(半行)" value="50%(半行)"></el-option>
  120 + <el-option label="100%(一行)" value="100%(一行)"></el-option>
  121 + </el-select>
  122 + </el-form-item>
  123 + <el-form-item label="限制规则" prop="length">
  124 + <el-input v-model.number="addmbitem.length" placeholder="请输入" maxlength="20"></el-input>
  125 + </el-form-item>
  126 + </el-form>
  127 + </div>
  128 + <template #footer>
  129 + <div style="display: flex; justify-content: flex-end; align-items: center;">
  130 + <el-button @click="minSev" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  131 + <el-button @click="mingClose" class="buttonHover"
  132 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
  133 + </div>
  134 + </template>
  135 + </el-dialog>
  136 + </div>
130 137 </template>
131 138 <script>
132   - import upfile from "@/components/fujianUpload/fujianList"
133   - import TitleWithCircle from '@/components/top/index';
134   - import mbadd from '@/components/change/mbadd';
135   - import {
136   - cereContractTemplateadd
137   - } from '@/api/newly.js'
138   -import { Input } from "element-ui";
139   - export default {
140   - components: {
141   - TitleWithCircle,
142   - mbadd,
143   - upfile
144   - },
145   - data() {
146   - return {
147   - list1:[],
148   - list2: [
149   - {
150   - name: '合同类型',
151   - key: 'contractType',
152   - type: '下拉选择',
153   - isrequired: '是',
154   - width: '50%(半行)',
155   - length: '20',
156   - value: '',
157   - list: [{
158   - label: '商铺合同',
159   - value: '商铺合同',
160   - },
161   - {
162   - label: '广告位合同',
163   - value: '广告位合同',
164   - },
165   - {
166   - label: '场地合同',
167   - value: '场地合同',
168   - },
169   - ]
170   - },
171   - {
172   - name: '合同编号',
173   - key: 'contractNumber',
174   - type: '单行文本',
175   - isrequired: '是',
176   - width: '50%(半行)',
177   - length: '20',
178   - value: '',
179   - },
180   - {
181   - name: '标段号',
182   - key: 'sectionNumber',
183   - type: '单行文本',
184   - isrequired: '是',
185   - width: '50%(半行)',
186   - length: '20',
187   - value: '',
188   - },
189   - {
190   - name: '合同名称',
191   - key: 'contractName',
192   - type: '单行文本',
193   - isrequired: '是',
194   - width: '50%(半行)',
195   - length: '50',
196   - value: '',
197   - },
198   - {
199   - name: '合同签订日期',
200   - key: 'contractSigningDate',
201   - type: '日期',
202   - isrequired: '是',
203   - width: '50%(半行)',
204   - length: '',
205   - value: '',
206   - },
207   - {
208   - name: '押金(元)',
209   - key: 'earnestMoney',
210   - type: '单行数字文本',
211   - isrequired: '是',
212   - width: '50%(半行)',
213   - length: '20',
214   - value: '',
215   - },
216   - {
217   - name: '起租日期',
218   - key: 'leaseStartDate',
219   - type: '日期',
220   - isrequired: '是',
221   - width: '50%(半行)',
222   - length: '',
223   - value: '',
224   - },
225   - {
226   - name: '终止日期',
227   - key: 'contractTerminationDate',
228   - type: '日期',
229   - isrequired: '是',
230   - width: '50%(半行)',
231   - length: '',
232   - value: '',
233   - },
234   - {
235   - name: '付款周期',
236   - key: 'paymentCycle',
237   - type: '下拉选择',
238   - isrequired: '是',
239   - width: '50%(半行)',
240   - length: '20',
241   - value: '',
242   - list: [{
243   - label: '按年',
244   - value: '按年',
245   - },
246   - {
247   - label: '按月',
248   - value: '按月',
249   - },
250   - {
251   - label: '按日',
252   - value: '按日',
253   - },
254   - {
255   - label: '季度',
256   - value: '季度',
257   - },
258   - ]
259   - },
260   - {
261   - name: '租金(元)',
262   - key: 'contractAmount',
263   - type: '单行数字文本',
264   - isrequired: '是',
265   - width: '50%(半行)',
266   - length: '20',
267   - value: '',
268   - },
269   - {
270   - name: '首次付款日',
271   - key: 'paymentDay',
272   - type: '付款日',
273   - isrequired: '是',
274   - width: '50%(半行)',
275   - length: '20',
276   - value: '',
277   - },
278   - {
279   - name: '承租人银行账号',
280   - key: 'tenantBankAccount',
281   - type: '银行账号',
282   - isrequired: '是',
283   - width: '50%(半行)',
284   - length: '',
285   - value: '',
286   - },
287   - {
288   - name: '绑定商家',
289   - key: 'relatedMerchants',
290   - type: '商家',
291   - isrequired: '是',
292   - width: '100%(一行)',
293   - length: '',
294   - value: '',
295   - },
296   - {
297   - name: '承租人名称',
298   - key: 'tenantName',
299   - type: '单行文本',
300   - isrequired: '是',
301   - width: '50%(半行)',
302   - length: '20',
303   - value: '',
304   - },
305   - {
306   - name: '联系电话',
307   - key: 'tenantTelephone',
308   - type: '联系电话',
309   - isrequired: '是',
310   - width: '50%(半行)',
311   - length: '20',
312   - value: '',
313   - },
314   - // {
315   - // name: '附件信息',
316   - // key: 'appendicesContract',
317   - // type: '附件',
318   - // isrequired: '是',
319   - // width: '100%(一行)',
320   - // length: '',
321   - // value: '',
322   - // },
323   - {
324   - name: '绑定资源',
325   - key: 'shopNumber',
326   - type: '资源',
327   - isrequired: '是',
328   - width: '100%(一行)',
329   - length: '',
330   - value: '',
331   - list:[]
332   - },
333   - ],
334   - rulesmb:{
335   - templateName: [{
336   - required: true,
337   - message: '请填写模版名称',
338   - trigger: 'change'
339   - }],
340   - templateAttachment: [{
341   - required: true,
342   - message: '请上传word模板',
343   - trigger: 'change'
344   - }],
345   - },
346   - ruleAddData:{},
347   - forminfo:{
348   - templateName: '', // 模板名称
349   - templateAttachment: '', // 模板附件路径或名称
350   - otherInfo: '', // 其他信息
351   - templateType: '', // 模板类型
352   - creator: '', // 创建人
353   - createTime: '', // 创建时间
354   - remark1: '', // 备注1
355   - remark2: '' // 备注2
356   - },
357   - ruleaddmbitem:{
358   - name: [{
359   - required: true,
360   - message: '请填写字段名称',
361   - trigger: 'change'
362   - }],
363   - key: [{
364   - required: true,
365   - message: '请填写字段key',
366   - trigger: 'change'
367   - }],
368   - type: [{
369   - required: true,
370   - message: '请选择字段类型',
371   - trigger: 'change'
372   - }],
373   - isrequired: [{
374   - required: true,
375   - message: '请选择是否必填',
376   - trigger: 'change'
377   - }],
378   - width: [{
379   - required: true,
380   - message: '请选择字段宽度',
381   - trigger: 'change'
382   - }],
383   - // length: [{
384   - // required: true,
385   - // message: '请填写限制规则',
386   - // trigger: 'change'
387   - // }],
388   - },
389   - addmbitem: {
390   - name: '',
391   - key: '',
392   - type: '',
393   - isrequired: '',
394   - width: '',
395   - length: '',
396   - value: '',
397   - list:[]
398   - },
399   - addMing:false,
400   -
401   - }
402   - },
403   - computed: {
404   - mobantype() {
405   - return this.$store.state.app.mobantype;
406   - }
407   - },
408   - props: {
409   - info: {
410   - type: Object,
411   - default: {}
412   - }
413   - },
414   - async created() {
415   - if (this.info.id) {
416   - this.info.otherInfo = JSON.parse(this.info.otherInfo)
417   - this.list1 = this.info.otherInfo
418   - this.forminfo = this.info
419   - }
420   - },
421   - methods: {
422   - inputvalue(e,index){
423   - console.error(e)
424   - this.addmbitem.list[index].value = e
425   - },
426   - additemlist() {
427   - this.addmbitem.list.push({
428   - label: '',
429   - value: ''
430   - })
431   - },
432   - async mingShow() {
433   - this.addMing = true
434   - },
435   - minSev() {
436   - // return
437   - this.$refs.addmbitem.validate((valid) => {
438   - console.log(valid)
439   - if (valid) {
440   - this.list1.push(this.addmbitem)
441   - this.addmbitem = {
442   - name: '',
443   - key: '',
444   - type: '',
445   - isrequired: '',
446   - width: '',
447   - length: '',
448   - value: '',
449   - list:[]
450   - }
451   - this.addMing = false
452   - } else {
453   - this.$message({
454   - message: '请填写完整信息',
455   - type: 'error'
456   - })
457   - return false;
458   - }
459   - })
460   - },
461   - mingClose() {
462   - this.addMing = false
463   - },
464   - openfile(e) {
465   - if (e) {
466   - const fullUrl = e;
467   - try {
468   - window.open(fullUrl, '_blank'); // 在新标签页中打开文件
469   - } catch (error) {
470   - console.error('打开文件失败:', error);
471   - }
472   - } else {
473   - console.error('无文件可查看');
474   - }
475   - },
476   - changimg(e, type) {
477   - this.forminfo[type] = e
478   - },
479   - changimg(e, type) {
480   - this.forminfo[type] = e
481   - },
482   - openfile(e) {
483   - if (e) {
484   - const fullUrl = e;
485   - try {
486   - window.open(fullUrl, '_blank'); // 在新标签页中打开文件
487   - } catch (error) {
488   - console.error('打开文件失败:', error);
489   - }
490   - } else {
491   - console.error('无文件可查看');
492   - }
493   - },
494   - //获取当前时间
495   - updateCurrentTime() {
496   - const now = new Date();
497   - const year = now.getFullYear();
498   - const month = (now.getMonth() + 1).toString().padStart(2, '0');
499   - const day = now.getDate().toString().padStart(2, '0');
500   - const hours = now.getHours().toString().padStart(2, '0');
501   - const minutes = now.getMinutes().toString().padStart(2, '0');
502   - const seconds = now.getSeconds().toString().padStart(2, '0');
  139 + import upfile from "@/components/fujianUpload/fujianList"
  140 + import TitleWithCircle from '@/components/top/index';
  141 + import mbadd from '@/components/change/mbadd';
  142 + import {
  143 + cereContractTemplateadd
  144 + } from '@/api/newly.js'
  145 + import {
  146 + Input
  147 + } from "element-ui";
  148 + export default {
  149 + components: {
  150 + TitleWithCircle,
  151 + mbadd,
  152 + upfile
  153 + },
  154 + data() {
  155 + return {
  156 + list1: [],
  157 + list2: [{
  158 + name: '合同类型',
  159 + key: 'contractType',
  160 + type: '下拉选择',
  161 + isrequired: '是',
  162 + width: '50%(半行)',
  163 + length: '20',
  164 + value: '',
  165 + list: [{
  166 + label: '商铺合同',
  167 + value: '商铺合同',
  168 + },
  169 + {
  170 + label: '广告位合同',
  171 + value: '广告位合同',
  172 + },
  173 + {
  174 + label: '场地合同',
  175 + value: '场地合同',
  176 + },
  177 + ]
  178 + },
  179 + {
  180 + name: '合同编号',
  181 + key: 'contractNumber',
  182 + type: '单行文本',
  183 + isrequired: '是',
  184 + width: '50%(半行)',
  185 + length: '20',
  186 + value: '',
  187 + },
  188 + {
  189 + name: '标段号',
  190 + key: 'sectionNumber',
  191 + type: '单行文本',
  192 + isrequired: '是',
  193 + width: '50%(半行)',
  194 + length: '20',
  195 + value: '',
  196 + },
  197 + {
  198 + name: '合同名称',
  199 + key: 'contractName',
  200 + type: '单行文本',
  201 + isrequired: '是',
  202 + width: '50%(半行)',
  203 + length: '50',
  204 + value: '',
  205 + },
  206 + {
  207 + name: '合同签订日期',
  208 + key: 'contractSigningDate',
  209 + type: '日期',
  210 + isrequired: '是',
  211 + width: '50%(半行)',
  212 + length: '',
  213 + value: '',
  214 + },
  215 + {
  216 + name: '押金(元)',
  217 + key: 'earnestMoney',
  218 + type: '单行数字文本',
  219 + isrequired: '是',
  220 + width: '50%(半行)',
  221 + length: '20',
  222 + value: '',
  223 + },
  224 + {
  225 + name: '起租日期',
  226 + key: 'leaseStartDate',
  227 + type: '日期',
  228 + isrequired: '是',
  229 + width: '50%(半行)',
  230 + length: '',
  231 + value: '',
  232 + },
  233 + {
  234 + name: '终止日期',
  235 + key: 'contractTerminationDate',
  236 + type: '日期',
  237 + isrequired: '是',
  238 + width: '50%(半行)',
  239 + length: '',
  240 + value: '',
  241 + },
  242 + {
  243 + name: '付款周期',
  244 + key: 'paymentCycle',
  245 + type: '下拉选择',
  246 + isrequired: '是',
  247 + width: '50%(半行)',
  248 + length: '20',
  249 + value: '',
  250 + list: [{
  251 + label: '日',
  252 + value: '日',
  253 + },
  254 + {
  255 + label: '月',
  256 + value: '月',
  257 + },
  258 + {
  259 + label: '季',
  260 + value: '季',
  261 + },
  262 + {
  263 + label: '年',
  264 + value: '年',
  265 + }
  266 +
  267 +
  268 +
  269 + ]
  270 + },
  271 + {
  272 + name: '租金(元)',
  273 + key: 'contractAmount',
  274 + type: '单行数字文本',
  275 + isrequired: '是',
  276 + width: '50%(半行)',
  277 + length: '20',
  278 + value: '',
  279 + },
  280 + {
  281 + name: '首次付款日',
  282 + key: 'paymentDay',
  283 + type: '付款日',
  284 + isrequired: '是',
  285 + width: '50%(半行)',
  286 + length: '20',
  287 + value: '',
  288 + },
  289 + {
  290 + name: '承租人银行账号',
  291 + key: 'tenantBankAccount',
  292 + type: '银行账号',
  293 + isrequired: '是',
  294 + width: '50%(半行)',
  295 + length: '',
  296 + value: '',
  297 + },
  298 + {
  299 + name: '绑定商家',
  300 + key: 'relatedMerchants',
  301 + type: '商家',
  302 + isrequired: '是',
  303 + width: '100%(一行)',
  304 + length: '',
  305 + value: '',
  306 + },
  307 + {
  308 + name: '承租人名称',
  309 + key: 'tenantName',
  310 + type: '单行文本',
  311 + isrequired: '是',
  312 + width: '50%(半行)',
  313 + length: '20',
  314 + value: '',
  315 + },
  316 + {
  317 + name: '联系电话',
  318 + key: 'tenantTelephone',
  319 + type: '联系电话',
  320 + isrequired: '是',
  321 + width: '50%(半行)',
  322 + length: '20',
  323 + value: '',
  324 + },
  325 + // {
  326 + // name: '附件信息',
  327 + // key: 'appendicesContract',
  328 + // type: '附件',
  329 + // isrequired: '是',
  330 + // width: '100%(一行)',
  331 + // length: '',
  332 + // value: '',
  333 + // },
  334 + {
  335 + name: '绑定资源',
  336 + key: 'shopNumber',
  337 + type: '资源',
  338 + isrequired: '是',
  339 + width: '100%(一行)',
  340 + length: '',
  341 + value: '',
  342 + list: []
  343 + },
  344 + ],
  345 + rulesmb: {
  346 + templateName: [{
  347 + required: true,
  348 + message: '请填写模版名称',
  349 + trigger: 'change'
  350 + }],
  351 + templateAttachment: [{
  352 + required: true,
  353 + message: '请上传word模板',
  354 + trigger: 'change'
  355 + }],
  356 + },
  357 + ruleAddData: {},
  358 + forminfo: {
  359 + templateName: '', // 模板名称
  360 + templateAttachment: '', // 模板附件路径或名称
  361 + otherInfo: '', // 其他信息
  362 + templateType: '', // 模板类型
  363 + creator: '', // 创建人
  364 + createTime: '', // 创建时间
  365 + remark1: '', // 备注1
  366 + remark2: '' // 备注2
  367 + },
  368 + ruleaddmbitem: {
  369 + name: [{
  370 + required: true,
  371 + message: '请填写字段名称',
  372 + trigger: 'change'
  373 + }],
  374 + key: [{
  375 + required: true,
  376 + message: '请填写字段key',
  377 + trigger: 'change'
  378 + }],
  379 + type: [{
  380 + required: true,
  381 + message: '请选择字段类型',
  382 + trigger: 'change'
  383 + }],
  384 + isrequired: [{
  385 + required: true,
  386 + message: '请选择是否必填',
  387 + trigger: 'change'
  388 + }],
  389 + width: [{
  390 + required: true,
  391 + message: '请选择字段宽度',
  392 + trigger: 'change'
  393 + }],
  394 + // length: [{
  395 + // required: true,
  396 + // message: '请填写限制规则',
  397 + // trigger: 'change'
  398 + // }],
  399 + },
  400 + addmbitem: {
  401 + name: '',
  402 + key: '',
  403 + type: '',
  404 + isrequired: '',
  405 + width: '',
  406 + length: '',
  407 + value: '',
  408 + list: []
  409 + },
  410 + addMing: false,
  411 +
  412 + }
  413 + },
  414 + computed: {
  415 + mobantype() {
  416 + return this.$store.state.app.mobantype;
  417 + }
  418 + },
  419 + props: {
  420 + info: {
  421 + type: Object,
  422 + default: {}
  423 + }
  424 + },
  425 + async created() {
  426 + if (this.info.id) {
  427 + this.info.otherInfo = JSON.parse(this.info.otherInfo)
  428 + this.list1 = this.info.otherInfo
  429 + this.forminfo = this.info
  430 + }
  431 + },
  432 + methods: {
  433 + inputvalue(e, index) {
  434 + console.error(e)
  435 + this.addmbitem.list[index].value = e
  436 + },
  437 + additemlist() {
  438 + this.addmbitem.list.push({
  439 + label: '',
  440 + value: ''
  441 + })
  442 + },
  443 + async mingShow() {
  444 + this.addMing = true
  445 + },
  446 + minSev() {
  447 + // return
  448 + this.$refs.addmbitem.validate((valid) => {
  449 + console.log(valid)
  450 + if (valid) {
  451 + this.list1.push(this.addmbitem)
  452 + this.addmbitem = {
  453 + name: '',
  454 + key: '',
  455 + type: '',
  456 + isrequired: '',
  457 + width: '',
  458 + length: '',
  459 + value: '',
  460 + list: []
  461 + }
  462 + this.addMing = false
  463 + } else {
  464 + this.$message({
  465 + message: '请填写完整信息',
  466 + type: 'error'
  467 + })
  468 + return false;
  469 + }
  470 + })
  471 + },
  472 + mingClose() {
  473 + this.addMing = false
  474 + },
  475 + openfile(e) {
  476 + if (e) {
  477 + const fullUrl = e;
  478 + try {
  479 + window.open(fullUrl, '_blank'); // 在新标签页中打开文件
  480 + } catch (error) {
  481 + console.error('打开文件失败:', error);
  482 + }
  483 + } else {
  484 + console.error('无文件可查看');
  485 + }
  486 + },
  487 + changimg(e, type) {
  488 + this.forminfo[type] = e
  489 + },
  490 + changimg(e, type) {
  491 + this.forminfo[type] = e
  492 + },
  493 + openfile(e) {
  494 + if (e) {
  495 + const fullUrl = e;
  496 + try {
  497 + window.open(fullUrl, '_blank'); // 在新标签页中打开文件
  498 + } catch (error) {
  499 + console.error('打开文件失败:', error);
  500 + }
  501 + } else {
  502 + console.error('无文件可查看');
  503 + }
  504 + },
  505 + //获取当前时间
  506 + updateCurrentTime() {
  507 + const now = new Date();
  508 + const year = now.getFullYear();
  509 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  510 + const day = now.getDate().toString().padStart(2, '0');
  511 + const hours = now.getHours().toString().padStart(2, '0');
  512 + const minutes = now.getMinutes().toString().padStart(2, '0');
  513 + const seconds = now.getSeconds().toString().padStart(2, '0');
503 514  
504   - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
505   - },
506   - add() {
507   - console.error(this.list1)
508   - this.$refs.ruleForm1.validate((valid) => {
509   - console.log(valid)
510   - if (valid) {
511   - let allist = [...this.list2,...this.list1]
512   - let listallcl = allist.map((item) => {
513   - item.value = ''
514   - return item;
515   - });
516   - this.forminfo.otherInfo = JSON.stringify(listallcl)
517   - console.log(
518   - {...this.forminfo}
519   - )
520   - // return
521   - cereContractTemplateadd({
522   - ...this.forminfo,
523   - creator: localStorage.getItem('roleName'),
524   - createTime: this.updateCurrentTime(),
525   - }).then(res => {
526   - console.error(res)
527   - if (res.code == 200) {
528   - this.$message({
529   - message: '添加成功',
530   - type: 'success'
531   - })
532   - this.$emit('removeonaction', '1')
533   - } else {
534   - this.$message({
535   - message: res.msg,
536   - type: 'error'
537   - })
538   - }
  515 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  516 + },
  517 + add() {
  518 + console.error(this.list1)
  519 + this.$refs.ruleForm1.validate((valid) => {
  520 + console.log(valid)
  521 + if (valid) {
  522 + let allist = [...this.list2, ...this.list1]
  523 + let listallcl = allist.map((item) => {
  524 + item.value = ''
  525 + return item;
  526 + });
  527 + this.forminfo.otherInfo = JSON.stringify(listallcl)
  528 + console.log({
  529 + ...this.forminfo
  530 + })
  531 + // return
  532 + cereContractTemplateadd({
  533 + ...this.forminfo,
  534 + creator: localStorage.getItem('roleName'),
  535 + createTime: this.updateCurrentTime(),
  536 + }).then(res => {
  537 + console.error(res)
  538 + if (res.code == 200) {
  539 + this.$message({
  540 + message: '添加成功',
  541 + type: 'success'
  542 + })
  543 + this.$emit('removeonaction', '1')
  544 + } else {
  545 + this.$message({
  546 + message: res.msg,
  547 + type: 'error'
  548 + })
  549 + }
539 550  
540   - })
541   - } else {
542   - this.$message({
543   - message: '请填写完整信息',
544   - type: 'error'
545   - })
546   - return false;
547   - }
548   - })
549   - },
550   - close() {
551   - this.$emit('removeonaction', '1')
552   - },
553   - }
554   - }
  551 + })
  552 + } else {
  553 + this.$message({
  554 + message: '请填写完整信息',
  555 + type: 'error'
  556 + })
  557 + return false;
  558 + }
  559 + })
  560 + },
  561 + close() {
  562 + this.$emit('removeonaction', '1')
  563 + },
  564 + }
  565 + }
555 566 </script>
556 567 <style lang="css">
557   - .el-upload {
558   - display: block;
559   - text-align: left;
560   - }
  568 + .el-upload {
  569 + display: block;
  570 + text-align: left;
  571 + }
561 572  
562   - .el-dialog__header {
563   - background-color: #F2F3F5;
564   - text-align: left;
565   - }
  573 + .el-dialog__header {
  574 + background-color: #F2F3F5;
  575 + text-align: left;
  576 + }
566 577  
567   - .el-dialog__title {
568   - line-height: 30px;
569   - font-size: 15px;
570   - color: #303133;
571   - }
  578 + .el-dialog__title {
  579 + line-height: 30px;
  580 + font-size: 15px;
  581 + color: #303133;
  582 + }
572 583  
573   - .iterem {
574   - z-index: 99;
575   - margin-left: 10px;
576   - height: 40px;
577   - line-height: 25px;
578   - }
579   -</style>
  584 + .iterem {
  585 + z-index: 99;
  586 + margin-left: 10px;
  587 + height: 40px;
  588 + line-height: 25px;
  589 + }
  590 +</style>
580 591 \ No newline at end of file
... ...
admin-web-master/src/components/chakan/fa.vue
... ... @@ -51,7 +51,7 @@
51 51 </el-table-column>
52 52 <el-table-column label="租金/周期" prop="rentalPrice" show-overflow-tooltip>
53 53 <template slot-scope="scope">
54   - {{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}
  54 + {{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}
55 55 </template>
56 56 </el-table-column>
57 57 <!-- <el-table-column label="付款日" prop="payDay" show-overflow-tooltip>
... ...
admin-web-master/src/components/change/mbadd.vue
1 1 <template>
2   - <div v-if="isshow">
3   - <el-form ref="ruleForm" :model="forminfo" :rules="ruleAddData" label-width="130px" class="demo-ruleForm">
4   - <el-row :gutter="20">
5   - <el-col v-if="!item.ishow" :style="iscopy?'display: flex;align-items: center;':''" :span="item.width == '50%(半行)'?12:item.width == '100%(一行)'?24:12" v-for="(item,index) in list1"
6   - :key="index">
7   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '单行文本'" :style="iscopy?'width: calc(100% - 35px)':''">
8   - <el-input v-model="item.value" placeholder="请输入" :maxlength="item.length?item.length:200" @input="e=>inputvalue(e,item.key)"></el-input>
9   - </el-form-item>
10   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '联系电话'" :style="iscopy?'width: calc(100% - 35px)':''">
11   - <el-input v-model="item.value" placeholder="请输入" :maxlength="item.length?item.length:200" @input="inputphone(index, $event,item.key)"></el-input>
12   - </el-form-item>
13   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '银行账号'" :style="iscopy?'width: calc(100% - 35px)':''">
14   - <el-input v-model="item.value" placeholder="请输入" :maxlength="item.length?item.length:200" @input="inputmo(index, $event,item.key)"></el-input>
15   - </el-form-item>
16   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '单行数字文本'" :style="iscopy?'width: calc(100% - 35px)':''">
17   - <el-input v-model.number="item.value" placeholder="请输入" :maxlength="item.length?item.length:200"
18   - @input="validateNumber(index, $event,item.key)"></el-input>
19   - </el-form-item>
20   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '多行文本'" :style="iscopy?'width: calc(100% - 35px)':''">
21   - <el-input show-word-limit rows="4" v-model="item.value" placeholder="请输入" type="textarea"
22   - :maxlength="item.length?item.length:200" @input="e=>inputvalue(e,item.key)"/>
23   - </el-form-item>
24   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '下拉选择'" :style="iscopy?'width: calc(100% - 35px)':''">
25   - <el-select v-model="item.value" clearable placeholder="请选择" style="width: 100%;" @change="e=>changexl(e,item.key)">
26   - <el-option v-for="(item1,index1) in item.list" :key="index1" :label="item1.label"
27   - :value="item1.value"></el-option>
28   - </el-select>
29   - </el-form-item>
30   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '日期'" :style="iscopy?'width: calc(100% - 35px)':''">
31   - <el-date-picker @change="e=>changetime(e,item.key)" v-model="item.value" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"
32   - style="width: 100%;"></el-date-picker>
33   - </el-form-item>
34   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '付款日'" :style="iscopy?'width: calc(100% - 35px)':''">
35   - <el-select v-model="item.value" placeholder="请选择" style="width: 100%;" @change="e=>changexl(e,item.key)">
36   - <el-option :label="val+'号'" :value="val+'号'" v-for="val in 31"></el-option>
37   - </el-select>
38   - </el-form-item>
39   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '商家'" :style="iscopy?'width: calc(100% - 35px)':''">
40   - <el-select v-model="item.value" placeholder="请选择" style="width: 100%;" @change="e=>changexl(e,item.key)">
41   - <el-option v-for="(item,index) in shopList" :key="index" :label="item.name+ ' ' + item.phone"
42   - :value="item.id+''" />
43   - </el-select>
44   - </el-form-item>
45   - <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '附件'" :style="iscopy?'width: calc(100% - 35px)':''">
46   - <upfile :accept="'.docx,.doc'" filePath="mb" :inputtype="item.name" :value="item.value"
47   - @changimg="e=>changimg(e,index,item.key)"></upfile>
48   - </el-form-item>
49   - <i v-if="iscopy && item.type != '资源'" class="el-icon-copy-document greens tableBtn iterem" @click.stop="copytit(item.name)"></i>
50   - <el-form-item label="绑定资源" :prop="item.key" v-if="item.type == '资源' " style="width: 100%;">
51   - <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
52   - <div v-if="!iscopy && item.list.length != 1"
53   - style="font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;line-height:20px;background:#F2F3F5;">
54   - <div></div>
55   - <div style="color: #3F9B6A;padding:10px;" @click="mingShow(index,item.key)">
56   - 添加
57   - </div>
58   - </div>
59   - <div style="padding: 15px;">
60   - <div style="padding: 0px 20px 0px 0px">
61   - <el-table :data="iscopy?[{}]:item.list"
62   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
63   - <el-table-column label="序号">
64   - <template slot-scope="scope">
65   - {{scope.$index + 1}}
66   - </template>
67   - </el-table-column>
68   - <el-table-column label="资源名称" show-overflow-tooltip>
69   - <template slot-scope="scope" >
70   - <div style="display: flex;" v-if="iscopy">
71   - <div>资源名称</div>
72   - <i class="el-icon-copy-document greens tableBtn iterem" style="height: 0;" @click.stop="copytit('资源名称')"></i>
73   - </div>
74   - <div v-else> {{scope.row.shopName?scope.row.shopName:scope.row.advertisingName?scope.row.advertisingName:scope.row.venueName}}</div>
75   - </template>
76   - </el-table-column>
77   - <el-table-column label="资源类型" show-overflow-tooltip>
78   - <template slot-scope="scope" >
79   - <div style="display: flex;" v-if="iscopy">
80   - <div>资源类型</div>
81   - <i class="el-icon-copy-document greens tableBtn iterem" style="height: 0;" @click.stop="copytit('资源类型')"></i>
82   - </div>
83   - <div v-else> {{scope.row.shopName ? '商铺' : scope.row.advertisingType?scope.row.advertisingType:'场地'}}</div>
84   - </template>
85   - </el-table-column>
86   - <el-table-column label="详细地址" show-overflow-tooltip>
87   - <template slot-scope="scope" >
88   - <div style="display: flex;" v-if="iscopy">
89   - <div>详细地址</div>
90   - <i class="el-icon-copy-document greens tableBtn iterem" style="height: 0;" @click.stop="copytit('详细地址')"></i>
91   - </div>
92   - <div v-else>{{scope.row.detailedLocation}}</div>
93   - </template>
94   - </el-table-column>
  2 + <div v-if="isshow">
  3 + <el-form ref="ruleForm" :model="forminfo" :rules="ruleAddData" label-width="130px" class="demo-ruleForm">
  4 + <el-row :gutter="20">
  5 + <el-col v-if="!item.ishow" :style="iscopy?'display: flex;align-items: center;':''"
  6 + :span="item.width == '50%(半行)'?12:item.width == '100%(一行)'?24:12" v-for="(item,index) in list1"
  7 + :key="index">
  8 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '单行文本'"
  9 + :style="iscopy?'width: calc(100% - 35px)':''">
  10 + <el-input v-model="item.value" placeholder="请输入" :maxlength="item.length?item.length:200"
  11 + @input="e=>inputvalue(e,item.key)"></el-input>
  12 + </el-form-item>
  13 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '联系电话'"
  14 + :style="iscopy?'width: calc(100% - 35px)':''">
  15 + <el-input v-model="item.value" placeholder="请输入" :maxlength="item.length?item.length:200"
  16 + @input="inputphone(index, $event,item.key)"></el-input>
  17 + </el-form-item>
  18 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '银行账号'"
  19 + :style="iscopy?'width: calc(100% - 35px)':''">
  20 + <el-input v-model="item.value" placeholder="请输入" :maxlength="item.length?item.length:200"
  21 + @input="inputmo(index, $event,item.key)"></el-input>
  22 + </el-form-item>
  23 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '单行数字文本'"
  24 + :style="iscopy?'width: calc(100% - 35px)':''">
  25 + <el-input v-model.number="item.value" placeholder="请输入" :maxlength="item.length?item.length:200"
  26 + @input="validateNumber(index, $event,item.key)"></el-input>
  27 + </el-form-item>
  28 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '多行文本'"
  29 + :style="iscopy?'width: calc(100% - 35px)':''">
  30 + <el-input show-word-limit rows="4" v-model="item.value" placeholder="请输入" type="textarea"
  31 + :maxlength="item.length?item.length:200" @input="e=>inputvalue(e,item.key)" />
  32 + </el-form-item>
  33 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '下拉选择'"
  34 + :style="iscopy?'width: calc(100% - 35px)':''">
  35 + <el-select v-model="item.value" clearable placeholder="请选择" style="width: 100%;"
  36 + @change="e=>changexl(e,item.key)">
  37 + <el-option v-for="(item1,index1) in item.list" :key="index1" :label="item1.label"
  38 + :value="item1.value"></el-option>
  39 + </el-select>
  40 + </el-form-item>
  41 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '日期'"
  42 + :style="iscopy?'width: calc(100% - 35px)':''">
  43 + <el-date-picker @change="e=>changetime(e,item.key)" v-model="item.value" type="date"
  44 + value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 100%;"></el-date-picker>
  45 + </el-form-item>
  46 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '付款日'"
  47 + :style="iscopy?'width: calc(100% - 35px)':''">
  48 + <el-select v-model="item.value" placeholder="请选择" style="width: 100%;"
  49 + @change="e=>changexl(e,item.key)">
  50 + <el-option :label="val+'号'" :value="val+'号'" v-for="val in 31"></el-option>
  51 + </el-select>
  52 + </el-form-item>
  53 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '商家'"
  54 + :style="iscopy?'width: calc(100% - 35px)':''">
  55 + <el-select v-model="item.value" placeholder="请选择" style="width: 100%;"
  56 + @change="e=>changexl(e,item.key)">
  57 + <el-option v-for="(item,index) in shopList" :key="index"
  58 + :label="item.name+ ' ' + item.phone" :value="item.id+''" />
  59 + </el-select>
  60 + </el-form-item>
  61 + <el-form-item :label="item.name" :prop="item.key" v-if="item.type == '附件'"
  62 + :style="iscopy?'width: calc(100% - 35px)':''">
  63 + <upfile :accept="'.docx,.doc'" filePath="mb" :inputtype="item.name" :value="item.value"
  64 + @changimg="e=>changimg(e,index,item.key)"></upfile>
  65 + </el-form-item>
  66 + <i v-if="iscopy && item.type != '资源'" class="el-icon-copy-document greens tableBtn iterem"
  67 + @click.stop="copytit(item.name)"></i>
  68 + <el-form-item label="绑定资源" :prop="item.key" v-if="item.type == '资源' " style="width: 100%;">
  69 + <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
  70 + <div v-if="!iscopy && item.list.length != 1"
  71 + style="font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;line-height:20px;background:#F2F3F5;">
  72 + <div></div>
  73 + <div style="color: #3F9B6A;padding:10px;" @click="mingShow(index,item.key)">
  74 + 添加
  75 + </div>
  76 + </div>
  77 + <div style="padding: 15px;">
  78 + <div style="padding: 0px 20px 0px 0px">
  79 + <el-table :data="iscopy?[{}]:item.list"
  80 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  81 + <el-table-column label="序号">
  82 + <template slot-scope="scope">
  83 + {{scope.$index + 1}}
  84 + </template>
  85 + </el-table-column>
  86 + <el-table-column label="资源名称" show-overflow-tooltip>
  87 + <template slot-scope="scope">
  88 + <div style="display: flex;" v-if="iscopy">
  89 + <div>资源名称</div>
  90 + <i class="el-icon-copy-document greens tableBtn iterem"
  91 + style="height: 0;" @click.stop="copytit('资源名称')"></i>
  92 + </div>
  93 + <div v-else>
  94 + {{scope.row.shopName?scope.row.shopName:scope.row.advertisingName?scope.row.advertisingName:scope.row.venueName}}
  95 + </div>
  96 + </template>
  97 + </el-table-column>
  98 + <el-table-column label="资源类型" show-overflow-tooltip>
  99 + <template slot-scope="scope">
  100 + <div style="display: flex;" v-if="iscopy">
  101 + <div>资源类型</div>
  102 + <i class="el-icon-copy-document greens tableBtn iterem"
  103 + style="height: 0;" @click.stop="copytit('资源类型')"></i>
  104 + </div>
  105 + <div v-else>
  106 + {{scope.row.shopName ? '商铺' : scope.row.advertisingType?scope.row.advertisingType:'场地'}}
  107 + </div>
  108 + </template>
  109 + </el-table-column>
  110 + <el-table-column label="详细地址" show-overflow-tooltip>
  111 + <template slot-scope="scope">
  112 + <div style="display: flex;" v-if="iscopy">
  113 + <div>详细地址</div>
  114 + <i class="el-icon-copy-document greens tableBtn iterem"
  115 + style="height: 0;" @click.stop="copytit('详细地址')"></i>
  116 + </div>
  117 + <div v-else>{{scope.row.detailedLocation}}</div>
  118 + </template>
  119 + </el-table-column>
95 120  
96   - <el-table-column prop="notes" label="实际使用面积" >
97   - <template slot-scope="scope" >
98   - <div style="display: flex;" v-if="iscopy">
99   - <div>实际使用面积</div>
100   - <i class="el-icon-copy-document greens tableBtn iterem" style="height: 0;" @click.stop="copytit('实际使用面积')"></i>
101   - </div>
102   - <div v-else> {{scope.row.actualArea ? scope.row.actualArea : scope.row.actualUsableArea?scope.row.actualUsableArea:'-'}}</div>
103   - </template>
  121 + <el-table-column prop="notes" label="实际使用面积">
  122 + <template slot-scope="scope">
  123 + <div style="display: flex;" v-if="iscopy">
  124 + <div>实际使用面积</div>
  125 + <i class="el-icon-copy-document greens tableBtn iterem"
  126 + style="height: 0;" @click.stop="copytit('实际使用面积')"></i>
  127 + </div>
  128 + <div v-else>
  129 + {{scope.row.actualArea ? scope.row.actualArea : scope.row.actualUsableArea?scope.row.actualUsableArea:'-'}}
  130 + </div>
  131 + </template>
104 132  
105   - </el-table-column>
  133 + </el-table-column>
106 134  
107   - <el-table-column label="操作" v-if="!iscopy">
108   - <template slot-scope="scope">
109   - <div @click="MingDelete(scope.$index)" class="tableBtn greens">删除</div>
110   - </template>
111   - </el-table-column>
112   - </el-table>
113   - </div>
114   - </div>
115   - </div>
116   - </el-form-item>
117   - </el-col>
118   - </el-row>
119   - </el-form>
120   - <el-dialog :visible.sync="addcl" title="选择策略" width="65%" append-to-body center :close-on-click-modal="false"
121   - :close-on-press-escape="false" :show-close="false">
122   - <cl v-if="addcl" @minSev="minSevcl" @mingClose="mingClosecl"></cl>
123   - </el-dialog>
124   - <el-dialog :visible.sync="addzy" title="选择资源" width="65%" append-to-body center :close-on-click-modal="false"
125   - :close-on-press-escape="false" :show-close="false">
126   - <zy :maxSelection="1" publishStatus="2" v-if="addzy" @mingClose="mingClosezy" @minSev="minSevzy"></zy>
127   - </el-dialog>
128   - </div>
  135 + <el-table-column label="操作" v-if="!iscopy">
  136 + <template slot-scope="scope">
  137 + <div @click="MingDelete(scope.$index)" class="tableBtn greens">删除</div>
  138 + </template>
  139 + </el-table-column>
  140 + </el-table>
  141 + </div>
  142 + </div>
  143 + </div>
  144 + </el-form-item>
  145 + </el-col>
  146 + </el-row>
  147 + </el-form>
  148 + <el-dialog :visible.sync="addcl" title="选择策略" width="65%" append-to-body center :close-on-click-modal="false"
  149 + :close-on-press-escape="false" :show-close="false">
  150 + <cl v-if="addcl" @minSev="minSevcl" @mingClose="mingClosecl"></cl>
  151 + </el-dialog>
  152 + <el-dialog :visible.sync="addzy" title="选择资源" width="65%" append-to-body center :close-on-click-modal="false"
  153 + :close-on-press-escape="false" :show-close="false">
  154 + <zy :maxSelection="1" publishStatus="2" v-if="addzy" @mingClose="mingClosezy" @minSev="minSevzy"></zy>
  155 + </el-dialog>
  156 + </div>
129 157 </template>
130 158 <script>
131   - import upfile from "@/components/fujianUpload/fujianList"
132   - import upimg from "@/components/ImageUpload/index"
133   - import cl from "@/components/change/cl"
134   - import zy from "@/components/change/zy"
135   - import {
136   - cerePlatformMerchant,
137   - } from '@/api/newly.js'
138   - export default {
139   - components: {
140   - upfile,
141   - upimg,
142   - cl,
143   - zy
144   - },
145   - props: {
146   - list1: {
147   - type: Array,
148   - default: []
149   - },
150   - iscopy: {
151   - type: Boolean,
152   - default: false
153   - },
154   -
155   - },
156   - data() {
157   - return {
158   - keyon:'',
159   - addcl: false,
160   - addzy: false,
161   - shopId: '',
162   - shopList: [],
163   - ruleAddData: {
  159 + import upfile from "@/components/fujianUpload/fujianList"
  160 + import upimg from "@/components/ImageUpload/index"
  161 + import cl from "@/components/change/cl"
  162 + import zy from "@/components/change/zy"
  163 + import {
  164 + cerePlatformMerchant,
  165 + } from '@/api/newly.js'
  166 + export default {
  167 + components: {
  168 + upfile,
  169 + upimg,
  170 + cl,
  171 + zy
  172 + },
  173 + props: {
  174 + list1: {
  175 + type: Array,
  176 + default: []
  177 + },
  178 + iscopy: {
  179 + type: Boolean,
  180 + default: false
  181 + },
164 182  
165   - },
166   - onindex:null,
167   - forminfo:{},
168   - isshow:false
169   - }
170   - },
171   - watch:{
172   - list1(val) {
173   - this.isshow = false
174   - if(this.list1.length>0) {
175   - let c1 = {}
176   - let info1 = {}
177   - for (let index = 0; index < this.list1.length; index++) {
178   - const element = this.list1[index];
179   - if(element.isrequired == '是') {
180   - c1[element.key] = [{
181   - required: true,
182   - message: '请填写' + element.name,
183   - trigger: 'change'
184   - }]
  183 + },
  184 + data() {
  185 + return {
  186 + keyon: '',
  187 + addcl: false,
  188 + addzy: false,
  189 + shopId: '',
  190 + shopList: [],
  191 + ruleAddData: {
185 192  
186   - }
187   - info1[element.key] = element.value+''
188   - }
189   - this.forminfo = info1
190   - this.ruleAddData = c1
191   - this.isshow = true
192   - // this.$updateRules(this.ruleAddData)
193   - console.error(this.ruleAddData)
194   - console.error({...this.forminfo})
195   - }
196   - },
197   - },
198   - async created() {
199   - await cerePlatformMerchant({
200   - checkState: '2',
201   - pageNumber: 0,
202   - pageSize: 1000,
203   - }).then(res => {
204   - this.shopList = res.data.content
205   - // console.error(this.shopList)
206   - })
207   - this.isshow = false
208   - if(this.list1.length>0) {
209   - let c1 = {}
210   - let info1 = {}
211   - for (let index = 0; index < this.list1.length; index++) {
212   - const element = this.list1[index];
213   - if(element.isrequired == '是') {
214   - c1[element.key] = [{
215   - required: true,
216   - message: '请填写' + element.name,
217   - trigger: 'change'
218   - }]
  193 + },
  194 + onindex: null,
  195 + forminfo: {},
  196 + isshow: false
  197 + }
  198 + },
  199 + watch: {
  200 + list1(val) {
  201 + this.isshow = false
  202 + if (this.list1.length > 0) {
  203 + let c1 = {}
  204 + let info1 = {}
  205 + for (let index = 0; index < this.list1.length; index++) {
  206 + const element = this.list1[index];
  207 + if (element.isrequired == '是') {
  208 + c1[element.key] = [{
  209 + required: true,
  210 + message: '请填写' + element.name,
  211 + trigger: 'change'
  212 + }]
219 213  
220   - }
221   - info1[element.key] = element.value+''
222   - }
223   - this.forminfo = info1
224   - this.ruleAddData = c1
225   - this.isshow = true
226   - // this.$updateRules(this.ruleAddData)
227   - console.error(this.ruleAddData)
228   - console.error({...this.forminfo})
229   - }
  214 + }
  215 + info1[element.key] = element.value + ''
  216 + }
  217 + this.forminfo = info1
  218 + this.ruleAddData = c1
  219 + this.isshow = true
  220 + // this.$updateRules(this.ruleAddData)
  221 + console.error(this.ruleAddData)
  222 + console.error({
  223 + ...this.forminfo
  224 + })
  225 + }
  226 + },
  227 + },
  228 + async created() {
  229 + await cerePlatformMerchant({
  230 + checkState: '2',
  231 + pageNumber: 0,
  232 + pageSize: 1000,
  233 + }).then(res => {
  234 + this.shopList = res.data.content
  235 + // console.error(this.shopList)
  236 + })
  237 + this.isshow = false
  238 + if (this.list1.length > 0) {
  239 + let c1 = {}
  240 + let info1 = {}
  241 + for (let index = 0; index < this.list1.length; index++) {
  242 + const element = this.list1[index];
  243 + if (element.isrequired == '是') {
  244 + c1[element.key] = [{
  245 + required: true,
  246 + message: '请填写' + element.name,
  247 + trigger: 'change'
  248 + }]
230 249  
231   - },
232   - methods: {
233   - MingDelete(item) {
234   - this.list1[this.onindex].list = []
235   - },
236   - // 验证输入框
237   - async yanzhen() {
238   - let c1 = false
239   - await this.$refs.ruleForm.validate(async (valid) => {
240   - if (valid) {
241   - c1 = true
242   - } else {
243   - this.$message({
244   - type: 'error',
245   - message: '请填写必填项'
246   - })
247   - c1 = false
248   - }
249   - })
250   - return c1
251   - },
252   -
253   - inputvalue(e,onindex) {
254   - this.forminfo[onindex] = e
255   - },
256   - inputnumvalue(e,onindex) {
257   - this.forminfo[onindex] = e
258   - },
259   - changetime(e,onindex){
260   - this.forminfo[onindex] = e
261   - },
262   - changexl(e,onindex){
263   - this.forminfo[onindex] = e
264   - },
265   - async copytit(content){
266   - // 复制结果
267   - let copyResult = true
268   - // 设置想要复制的文本内容
269   - const text = content || '复制内容为空哦~';
270   - // 判断是否支持clipboard方式
271   - if (!!window.navigator.clipboard) {
272   - // 利用clipboard将文本写入剪贴板(这是一个异步promise)
273   - await window.navigator.clipboard.writeText(text).then((res) => {
274   - console.log('复制成功');
275   - }).catch((err) => {
276   - console.log('复制失败--采取第二种复制方案', err);
277   - // clipboard方式复制失败 则采用document.execCommand()方式进行尝试
278   - copyResult = copyContent2(text)
279   - })
280   - } else {
281   - // 不支持clipboard方式 则采用document.execCommand()方式
282   - copyResult = copyContent2(text)
283   - }
284   - // 返回复制操作的最终结果
285   - return copyResult;
286   - },
287   - inputphone(index, value, onindex) {
288   - // 允许数字和短横线
289   - const cleanValue = value.replace(/[^\d-]/g, '');
290   -
291   - // 限制最大长度(手机11位,带区号座机最大13位如:0371-12345678)
292   - const truncatedValue = cleanValue.slice(0, 13);
293   -
294   - this.list1[index].value = truncatedValue;
295   - this.forminfo[onindex] = truncatedValue;
296   - },
297   - inputmo(index, value, onindex) {
298   - // 优化1:移除非数字字符(银行账号不需要小数点)
299   - const cleanValue = value.replace(/\D/g, '');
300   -
301   - // 优化2:限制最大长度19位
302   - const truncatedValue = cleanValue.slice(0, 19);
303   -
304   - // 优化3:仅更新值(去掉无效的正则判断)
305   - this.list1[index].value = truncatedValue;
306   - this.forminfo[onindex] = truncatedValue;
  250 + }
  251 + info1[element.key] = element.value + ''
  252 + }
  253 + this.forminfo = info1
  254 + this.ruleAddData = c1
  255 + this.isshow = true
  256 + // this.$updateRules(this.ruleAddData)
  257 + console.error(this.ruleAddData)
  258 + console.error({
  259 + ...this.forminfo
  260 + })
  261 + }
307 262  
308   - // 优化4:添加格式美化(每4位空格分隔)
309   - // 如果需要显示格式可以启用(但存储值保持纯数字):
310   - // this.$nextTick(() => {
311   - // const formatted = truncatedValue.replace(/(\d{4})(?=\d)/g, '$1 ');
312   - // if (formatted !== value) {
313   - // this.list1[index].value = formatted;
314   - // }
315   - // });
316   - },
317   - validateNumber(index, value,onindex) {
318   - // 使用正则表达式确保输入的是数字,并且可以包含最多两位小数
319   - const regex = /^\d+(\.\d{1,2})?$/;
320   - if (!regex.test(value)) {
321   - this.list1[index].value = value.replace(/[^\d.]/g, '').replace(/(\.\d{2}).*$/, '$1');
322   -
323   - }
324   - this.forminfo[onindex] = this.list1[index].value
325   - },
326   - changimg(e, type,onindex) {
327   - this.list1[type].value = e
328   - this.forminfo[onindex] = e
329   - },
330   - // changeRelatedMerchants(e) {
331   - // this.shopId = e
332   - // },
333   - async mingShow(index,key) {
334   - this.addzy = true
335   - this.onindex = index
336   - this.keyon = key
337   - },
338   - // 处理策略对话框的确认操作
339   - minSevcl(data) {
340   - // 处理策略选择后的数据
341   - console.log('策略选择确认:', data);
342   - this.addcl = false; // 关闭策略对话框
343   - },
344   - // 处理策略对话框的关闭操作
345   - mingClosecl() {
346   - this.addcl = false; // 关闭策略对话框
347   - },
348   - // 处理资源对话框的确认操作
349   - minSevzy(data) {
350   - // 处理资源选择后的数据
351   - console.log('资源选择确认:', data);
352   - const filteredAddData = this.list1[this.onindex].list.filter(itemAdd => {
353   - // 使用 some 方法检查 this.multipleSelection 中是否存在具有相同 id 的元素
354   - return !data.some(itemMultiple => itemMultiple.id === itemAdd.id);
355   - });
356   -
357   - console.error(this.list1[this.onindex].list)
358   - //刷新渲染层
359   - this.$nextTick(() => {
360   - this.list1[this.onindex].list = filteredAddData.concat(data)
361   - this.list1[this.onindex].value = this.list1[this.onindex].list[0]
362   - })
363   - this.forminfo[this.keyon] = data[0].id
364   - this.addzy = false; // 关闭资源对话框
365   - },
366   - // 处理资源对话框的关闭操作
367   - mingClosezy() {
368   - this.addzy = false; // 关闭资源对话框
369   - }
370   - }
371   - }
  263 + },
  264 + methods: {
  265 + MingDelete(item) {
  266 + this.list1[this.onindex].list = []
  267 + },
  268 + // 验证输入框
  269 + async yanzhen() {
  270 + let c1 = false
  271 + await this.$refs.ruleForm.validate(async (valid) => {
  272 + if (valid) {
  273 + c1 = true
  274 + } else {
  275 + this.$message({
  276 + type: 'error',
  277 + message: '请填写必填项'
  278 + })
  279 + c1 = false
  280 + }
  281 + })
  282 + return c1
  283 + },
  284 +
  285 + inputvalue(e, onindex) {
  286 + this.forminfo[onindex] = e
  287 + },
  288 + inputnumvalue(e, onindex) {
  289 + this.forminfo[onindex] = e
  290 + },
  291 + changetime(e, onindex) {
  292 + this.forminfo[onindex] = e
  293 + },
  294 + changexl(e, onindex) {
  295 + this.forminfo[onindex] = e
  296 + },
  297 + async copytit(content) {
  298 + // 复制结果
  299 + let copyResult = true
  300 + // 设置想要复制的文本内容
  301 + const text = content || '复制内容为空哦~';
  302 + // 判断是否支持clipboard方式
  303 + if (!!window.navigator.clipboard) {
  304 + // 利用clipboard将文本写入剪贴板(这是一个异步promise)
  305 + await window.navigator.clipboard.writeText(text).then((res) => {
  306 + console.log('复制成功');
  307 + }).catch((err) => {
  308 + console.log('复制失败--采取第二种复制方案', err);
  309 + // clipboard方式复制失败 则采用document.execCommand()方式进行尝试
  310 + copyResult = copyContent2(text)
  311 + })
  312 + } else {
  313 + // 不支持clipboard方式 则采用document.execCommand()方式
  314 + copyResult = copyContent2(text)
  315 + }
  316 + // 返回复制操作的最终结果
  317 + return copyResult;
  318 + },
  319 + inputphone(index, value, onindex) {
  320 + // 允许数字和短横线
  321 + const cleanValue = value.replace(/[^\d-]/g, '');
  322 +
  323 + // 限制最大长度(手机11位,带区号座机最大13位如:0371-12345678)
  324 + const truncatedValue = cleanValue.slice(0, 13);
  325 +
  326 + this.list1[index].value = truncatedValue;
  327 + this.forminfo[onindex] = truncatedValue;
  328 + },
  329 + inputmo(index, value, onindex) {
  330 + // 优化1:移除非数字字符(银行账号不需要小数点)
  331 + const cleanValue = value.replace(/\D/g, '');
  332 +
  333 + // 优化2:限制最大长度19位
  334 + const truncatedValue = cleanValue.slice(0, 19);
  335 +
  336 + // 优化3:仅更新值(去掉无效的正则判断)
  337 + this.list1[index].value = truncatedValue;
  338 + this.forminfo[onindex] = truncatedValue;
  339 +
  340 + // 优化4:添加格式美化(每4位空格分隔)
  341 + // 如果需要显示格式可以启用(但存储值保持纯数字):
  342 + // this.$nextTick(() => {
  343 + // const formatted = truncatedValue.replace(/(\d{4})(?=\d)/g, '$1 ');
  344 + // if (formatted !== value) {
  345 + // this.list1[index].value = formatted;
  346 + // }
  347 + // });
  348 + },
  349 + validateNumber(index, value, onindex) {
  350 + // 使用正则表达式确保输入的是数字,并且可以包含最多两位小数
  351 + const regex = /^\d+(\.\d{1,2})?$/;
  352 + if (!regex.test(value)) {
  353 + this.list1[index].value = value.replace(/[^\d.]/g, '').replace(/(\.\d{2}).*$/, '$1');
  354 +
  355 + }
  356 + this.forminfo[onindex] = this.list1[index].value
  357 + },
  358 + changimg(e, type, onindex) {
  359 + this.list1[type].value = e
  360 + this.forminfo[onindex] = e
  361 + },
  362 + // changeRelatedMerchants(e) {
  363 + // this.shopId = e
  364 + // },
  365 + async mingShow(index, key) {
  366 + this.addzy = true
  367 + this.onindex = index
  368 + this.keyon = key
  369 + },
  370 + // 处理策略对话框的确认操作
  371 + minSevcl(data) {
  372 + // 处理策略选择后的数据
  373 + console.log('策略选择确认:', data);
  374 + this.addcl = false; // 关闭策略对话框
  375 + },
  376 + // 处理策略对话框的关闭操作
  377 + mingClosecl() {
  378 + this.addcl = false; // 关闭策略对话框
  379 + },
  380 + // 处理资源对话框的确认操作
  381 + minSevzy(data) {
  382 + // 处理资源选择后的数据
  383 + console.log('资源选择确认:', data);
  384 + const filteredAddData = this.list1[this.onindex].list.filter(itemAdd => {
  385 + // 使用 some 方法检查 this.multipleSelection 中是否存在具有相同 id 的元素
  386 + return !data.some(itemMultiple => itemMultiple.id === itemAdd.id);
  387 + });
  388 +
  389 + console.error(this.list1[this.onindex].list)
  390 + //刷新渲染层
  391 + this.$nextTick(() => {
  392 + this.list1[this.onindex].list = filteredAddData.concat(data)
  393 + this.list1[this.onindex].value = this.list1[this.onindex].list[0]
  394 + })
  395 + this.forminfo[this.keyon] = data[0].id
  396 + this.addzy = false; // 关闭资源对话框
  397 + },
  398 + // 处理资源对话框的关闭操作
  399 + mingClosezy() {
  400 + this.addzy = false; // 关闭资源对话框
  401 + }
  402 + }
  403 + }
372 404 </script>
373 405 <style lang="css">
374   - .el-upload {
375   - display: block;
376   - text-align: left;
377   - }
  406 + .el-upload {
  407 + display: block;
  408 + text-align: left;
  409 + }
378 410  
379   - .el-dialog__header {
380   - background-color: #F2F3F5;
381   - text-align: left;
382   - }
  411 + .el-dialog__header {
  412 + background-color: #F2F3F5;
  413 + text-align: left;
  414 + }
383 415  
384   - .el-dialog__title {
385   - line-height: 30px;
386   - font-size: 15px;
387   - color: #303133;
388   - }
  416 + .el-dialog__title {
  417 + line-height: 30px;
  418 + font-size: 15px;
  419 + color: #303133;
  420 + }
389 421  
390   - .iterem {
391   - z-index: 99;
392   - margin-left: 10px;
393   - height: 40px;
394   - line-height: 25px;
395   - }
396   -</style>
  422 + .iterem {
  423 + z-index: 99;
  424 + margin-left: 10px;
  425 + height: 40px;
  426 + line-height: 25px;
  427 + }
  428 +</style>
397 429 \ No newline at end of file
... ...
admin-web-master/src/utils/request.js
... ... @@ -16,13 +16,13 @@ let hostall = window.location.href;
16 16 let baseURL = ''
17 17 if(host === 'localhost:8080' || host === 'localhost:8081' || host === 'localhost:9528'|| host === '192.168.31.45:9528'|| host === 'localhost:9529' ) {
18 18  
19   - // baseURL = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server';
20   - baseURL = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/admin-server';
  19 + baseURL = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server';
  20 + // baseURL = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/admin-server';
21 21  
22 22 // baseURL = process.env.VUE_APP_DOMAIN_PREFIX_1;
23 23  
24 24  
25   - // baseURL = 'http://128.10.249.8:9003';
  25 + // baseURL = 'http://128.10.249.20:9003';
26 26  
27 27  
28 28 } else {
... ...
admin-web-master/src/utils/request2.js
... ... @@ -17,15 +17,15 @@ let baseURL = &#39;&#39;
17 17 // || host === 'localhost:9528'
18 18 if(host === 'localhost:8080' || host === 'localhost:8081' || host === 'localhost:9528'|| host === '192.168.31.45:9528'|| host === 'localhost:9529' ) {
19 19 // baseURL = process.env.VUE_APP_DOMAIN_PREFIX_1;
20   - baseURL = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/admin-server';
  20 + // baseURL = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/admin-server';
21 21 // baseURL = 'http://172.16.61.125:9004';
22 22 // baseURL = 'https://jy.scjysm.asia:18086/cdwlMall/business-server';
23   - // baseURL = 'http://128.10.249.206:9004';
  23 + baseURL = 'http://128.10.249.20:9004';
24 24 } else {
25 25 console.error('---------------------')
26 26 console.error(hostall)
27 27 let c1 = hostall.split('cdwlMall')[0];
28   - baseURL = c1 + 'cdwlMall/business-server';
  28 + baseURL = c1 + 'cdwlMall/meserver/business-server';
29 29 console.error(baseURL)
30 30 }
31 31 // const baseURL = process.env.VUE_APP_DOMAIN_PREFIX
... ...
admin-web-master/src/views/analysis/refund/index.vue
... ... @@ -62,7 +62,7 @@
62 62 </div>
63 63 <div style="width:15%;border-right:1px solid #F2F3F5">
64 64 <div style="margin-bottom: 10px;font-weight: 600;">退票总额(元)</div>
65   - <div style="font-weight: 600;">{{moyeOne}}</div>
  65 + <div style="font-weight: 600;">{{moyeOne.toFixed(2)}}</div>
66 66 </div>
67 67 <div>
68 68 <div style="margin-bottom: 10px;font-weight: 600;">平均退票率(%)</div>
... ...
admin-web-master/src/views/analysis/statistics/index.vue
... ... @@ -35,19 +35,19 @@
35 35 </el-form-item>
36 36 </el-form>
37 37 </div>
38   - </div>
39   - <!-- 表格 -->
  38 + </div>
  39 +
40 40 <div class="content_table" style="padding: 15px 10px 10px 10px;background-color:#F2F3F5">
41 41 <div style='padding:20px 10px;background-color:#fff;margin-bottom: 10px;'>
42   - <div style="font-size:14px;justify-content: space-around;display:flex;">
43   - <div style="display:flex;width:50%;justify-content: space-around;text-align: center;" v-for="(item,index) in titleList">
  42 + <div style="font-size:14px;flex-wrap: wrap;display:flex;">
  43 + <div style="display:flex;width:50%;justify-content: space-around;text-align: center;margin-bottom: 15px;" v-for="(item,index) in titleList">
44 44 <div style="width:45%;border-right:1px solid #F2F3F5" >
45 45 <div style="margin-bottom: 10px;font-weight: 600;">{{item.ticketType}}销售数量(张)</div>
46 46 <div style="font-weight: 600;">{{item.sumNum}}</div>
47 47 </div>
48 48 <div style="width:45%;border-right:1px solid #F2F3F5">
49 49 <div style="margin-bottom: 10px;font-weight: 600;">{{item.ticketType}}销售总额(元)</div>
50   - <div style="font-weight: 600;">{{item.moyeTwo}}</div>
  50 + <div style="font-weight: 600;">{{item.moyeTwo.toFixed(2)}}</div>
51 51 </div>
52 52 </div>
53 53 <!-- <div style="width:15%;border-right:1px solid #F2F3F5">
... ... @@ -69,6 +69,7 @@
69 69 </el-select> -->
70 70 <el-button style="background-color: #3F9B6A;color: #fff;" @click="daochu">导出</el-button>
71 71 </div>
  72 + <!-- 表格 -->
72 73 <div class="table">
73 74 <!-- :span-method="objectSpanMethod" -->
74 75 <el-table :summary-method="getSummaries" show-summary
... ...
admin-web-master/src/views/detect/admap.vue
... ... @@ -368,6 +368,13 @@
368 368 resourcesId: this.oncetype + this.oninfo.id,
369 369 rentalPoliciesIds: ids,
370 370 }
  371 + if(c1.rentalPoliciesIds.length==0){
  372 + this.$message({
  373 + message: '请选择策略进行绑定',
  374 + type: 'warning'
  375 + })
  376 + return
  377 + }
371 378 console.error(c1)
372 379 cereResourceStrategy(c1).then(res => {
373 380 if (res.code == 200) {
... ...
admin-web-master/src/views/detect/information/index.vue
... ... @@ -205,6 +205,13 @@
205 205 resourcesId: this.oncetype+this.oninfo.id,
206 206 rentalPoliciesIds: ids,
207 207 }
  208 + if(c1.rentalPoliciesIds.length==0){
  209 + this.$message({
  210 + message: '请选择策略进行绑定',
  211 + type: 'warning'
  212 + })
  213 + return
  214 + }
208 215 console.error(c1)
209 216 cereResourceStrategy(c1).then(res => {
210 217 if (res.code == 200) {
... ...
admin-web-master/src/views/detect/map/index.vue
... ... @@ -223,6 +223,13 @@
223 223 resourcesId: this.oncetype + this.oninfo.id,
224 224 rentalPoliciesIds: ids,
225 225 }
  226 + if(c1.rentalPoliciesIds.length==0){
  227 + this.$message({
  228 + message: '请选择策略进行绑定',
  229 + type: 'warning'
  230 + })
  231 + return
  232 + }
226 233 console.error(c1)
227 234 cereResourceStrategy(c1).then(res => {
228 235 if (res.code == 200) {
... ...
admin-web-master/src/views/rent/audit/index.vue
... ... @@ -94,6 +94,7 @@
94 94 <template slot-scope="scope">
95 95 <div @click="details(scope.row,'1')" class="tableBtn greens">查看</div>
96 96 <div v-if="scope.row.auditStatus == '1'" @click="details(scope.row,'2')" class="tableBtn greens">审核</div>
  97 + <div v-if="scope.row.auditStatus == '2'" @click="zhongzhi(scope.row,'5')" class="tableBtn greens">终止</div>
97 98 <div v-if="scope.row.auditStatus == '2'" @click="openhet(scope.row)" class="tableBtn greens">录入合同</div>
98 99 </template>
99 100 </el-table-column>
... ... @@ -314,6 +315,34 @@
314 315 this.detailsinfo = row
315 316 this.onaction = '3'
316 317 },
  318 + zhongzhi(item,val){
  319 +
  320 + let that = this
  321 + this.$confirm('确定要当前记录吗?', '提示', {
  322 + confirmButtonText: '确定',
  323 + cancelButtonText: '取消',
  324 + type: 'warning'
  325 + }).then(() => { msgedit({
  326 + id: item.id,
  327 + auditStatus: val,
  328 + }).then(res => {
  329 + if (res.code == 200) {
  330 + this.$message({
  331 + message: '处理成功',
  332 + type: 'success'
  333 + })
  334 + this.getAll()
  335 + } else {
  336 + this.$message({
  337 + message: '处理失败',
  338 + type: 'error'
  339 + })
  340 + }
  341 + })
  342 + })
  343 +
  344 +
  345 + },
317 346 removeinfo(row, e) {
318 347 this.contractChangeReason = e
319 348 this.detailsinfo = row
... ...
admin-web-master/src/views/revenue/totalsales/index.vue
... ... @@ -58,7 +58,7 @@
58 58 </div>
59 59 <div style="width:10%;border-right:1px solid #F2F2F2" v-for="(item,index) in tongList">
60 60 <div style="margin-bottom: 10px;font-weight: 600;">{{item.ticketChannel==1?'有赞':''}}销售总额(元)</div>
61   - <div style="font-weight: 600;">{{item.sum}}</div>
  61 + <div style="font-weight: 600;">{{item.sum.toFixed(2)}}</div>
62 62 </div>
63 63  
64 64 </div>
... ... @@ -190,7 +190,7 @@ numOne:0,
190 190 moyeOne += Number(item.price)
191 191  
192 192 })
193   - this.moyeOne = moyeOne
  193 + this.moyeOne = moyeOne.toFixed(2)
194 194  
195 195 this.echar2(this.tableData)
196 196 this.echar3( this.tableData)
... ...
admin-web-master/src/views/salesSta/dataSta.vue
... ... @@ -28,7 +28,7 @@
28 28 </div>
29 29  
30 30 <div class="">
31   - <el-descriptions class="margin-top" title="" :column="1" border labelStyle="width:35%;text-align:center;color:#000;background-color:#F9FAFC;" contentStyle="text-align:center;">
  31 + <el-descriptions class="margin-top" title="" :column="1" border :labelStyle="labelStyle" :contentStyle="contentStyle">
32 32 <el-descriptions-item>
33 33 <template slot="label">
34 34  
... ... @@ -97,7 +97,7 @@
97 97 </el-form>
98 98 </div> -->
99 99 <div class="">
100   - <el-descriptions class="margin-top" title="" :column="1" border labelStyle="width:35%;text-align:center;color:#000;background-color:#F9FAFC" contentStyle="text-align:center;">
  100 + <el-descriptions class="margin-top" title="" :column="1" border :labelStyle="labelStyle" :contentStyle="contentStyle">
101 101 <el-descriptions-item>
102 102 <template slot="label">
103 103  
... ... @@ -286,7 +286,7 @@
286 286  
287 287 <script>
288 288 import {salesStatistics,
289   - orderGetAll,
  289 + getAllNotPage,
290 290 calculateGrossProfit} from '@/api/dataSta'
291 291 import { async } from 'q';
292 292 export default {
... ... @@ -317,7 +317,16 @@ export default {
317 317 pageindex: {
318 318 pageNumber: 1,
319 319 pageSize: 10,
320   - }
  320 + },
  321 + labelStyle:{
  322 + width:'35%',
  323 + textAlign:'center',
  324 + color:'#000',
  325 + backgroundColor:'#F9FAFC',
  326 + },
  327 + contentStyle:{
  328 + textAlign:'center',
  329 + }
321 330 }
322 331  
323 332 },
... ... @@ -340,7 +349,7 @@ export default {
340 349 },
341 350 //重置
342 351 clear(){
343   - console.log('1212')
  352 +
344 353 this.formParams= {
345 354 maoliTime:'',
346 355 tongjiTime:''
... ... @@ -366,10 +375,10 @@ export default {
366 375 async getAll () {
367 376  
368 377 this.tableLoading = true
369   -const res = await orderGetAll(this.formInline)
  378 +const res = await getAllNotPage(this.formInline)
370 379  
371   - const Orderlist = await calculateGrossProfit(res.data.list)
372   - const tablelist = await salesStatistics(res.data.list)
  380 + const Orderlist = await calculateGrossProfit(res.data)
  381 + const tablelist = await salesStatistics(res.data)
373 382 this.maoli = Orderlist.data
374 383 this.tongji = tablelist.data
375 384 // this.loading = false;
... ...
admin-web-master/src/views/shopbus/autd/index.vue
... ... @@ -101,7 +101,7 @@
101 101 </el-table>
102 102 <div class="fenye">
103 103 <el-pagination
104   - :current-page="formInline.page"
  104 + :current-page="formInline.page +1"
105 105 :page-sizes="[10, 20, 50, 100]"
106 106 :page-size="10"
107 107 background
... ... @@ -304,7 +304,7 @@ export default {
304 304 authenType: '', // 店铺类型 1-个人 2-个体工商户 3-企业 4-其他组织
305 305 dates: [], // 时间数组
306 306 checkState: '0', // 入驻处理状态 0-未处理 1-通过 2-拒绝
307   - page: 1,
  307 + page: 0,
308 308 pageSize: 10
309 309 },
310 310 total: 10,
... ... @@ -365,7 +365,7 @@ export default {
365 365 this.getAll(this.formInline)
366 366 },
367 367 handleCurrentChange (val) {
368   - this.formInline.page = val
  368 + this.formInline.page = val - 1
369 369 this.getAll(this.formInline)
370 370 },
371 371 handleClick (tab, event) {
... ... @@ -375,7 +375,7 @@ export default {
375 375 // 查询
376 376 search () {
377 377 this.total = 1
378   - this.formInline.page = 1
  378 + this.formInline.page = 0
379 379  
380 380  
381 381 this.getAll(this.formInline)
... ... @@ -441,8 +441,8 @@ export default {
441 441 // 初始化查询所有数据
442 442 async getAll (formInline) {
443 443 const res = await settlementGetAll(formInline)
444   - this.tableData = res.data.list
445   - this.total = res.data.total
  444 + this.tableData = res.data.content
  445 + this.total = res.data.totalElements
446 446  
447 447 },
448 448 luru(item){
... ...
admin-web-master/src/views/shopbus/businessList/index.vue
... ... @@ -451,7 +451,7 @@
451 451 <el-form-item label="营业期限" prop="business">
452 452 <div v-if="disabled">{{ruleForm.businessStartDate}}-{{ruleForm.businessEndDate}}</div>
453 453  
454   - <el-date-picker style="width: 100%;" v-model="ruleForm.business" value-format="yyyy-MM-dd" v-else @blur="changeBusiness"
  454 + <el-date-picker style="width: 100%;" v-model="ruleForm.business" value-format="yyyy-MM-dd" v-else @blur="changeBusiness"
455 455 type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right" >
456 456 </el-date-picker>
457 457 </el-form-item>
... ... @@ -1189,10 +1189,10 @@ export default {
1189 1189 this.dialogVisible = true
1190 1190 },
1191 1191 changeBusiness(e){
1192   - console.log(e)
  1192 + this.$forceUpdate()
1193 1193 },
1194 1194 changeplan(e){
1195   - console.log(e)
  1195 + this.$forceUpdate()
1196 1196 },
1197 1197 // 删除
1198 1198 async del (row) {
... ...
admin-web-master/src/views/stockControl/stocksForewarn/index.vue
... ... @@ -34,18 +34,16 @@
34 34 </div>
35 35 </div>
36 36 <div style="background-color: #f5f5f5;padding:10px;margin-top: 20px;">
37   - <div style="line-height:200%;font-size: 12px;">数据列表</div>
  37 + <div style="line-height:200%;font-size: 14px;">数据列表</div>
38 38 </div>
39 39 <!-- 表格 -->
40 40 <div class="tableBox">
41 41 <el-table
42   - ref="multipleTable"
43   -
  42 + ref="multipleTable"
44 43 :data="tableData"
45 44 tooltip-effect="dark"
46 45  
47   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
48   - style="width: 100%;font-size:12px;"
  46 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
49 47 >
50 48  
51 49 <el-table-column
... ... @@ -93,12 +91,14 @@
93 91  
94 92 </el-table>
95 93 <div class="fenye">
  94 + <div style="line-height: 200%;">共{{total}}条</div>
96 95 <el-pagination
97 96 :current-page="currentPage"
98 97 :page-sizes="[5, 10, 20, 50, 100]"
99 98 :page-size="10"
100   - layout="prev, pager, next,total, sizes, jumper"
  99 + layout="prev, pager, next"
101 100 :total="total"
  101 + background
102 102 @size-change="handleSizeChange"
103 103 @current-change="handleCurrentChange"
104 104 />
... ... @@ -269,7 +269,7 @@ this.dialogVisible = false
269 269 background-color: #Fff;
270 270 }
271 271 .filter-container {
272   -font-size:12px;
  272 +font-size:14px;
273 273 border:1px solid #EBEEF5;
274 274  
275 275 }
... ... @@ -295,7 +295,7 @@ border:1px solid #EBEEF5;
295 295 margin-bottom:0px;
296 296 }
297 297 .el-form-item__label{
298   - font-size:12px;
  298 + font-size:14px;
299 299 }
300 300 }
301 301 ::v-deep .formSearch{
... ... @@ -305,13 +305,13 @@ border:1px solid #EBEEF5;
305 305 margin-bottom:0px;
306 306 }
307 307 .el-form-item__label{
308   - font-size:12px;
  308 + font-size:14px;
309 309 }
310 310 }
311 311 .fenye {
312 312 margin-top: 20px;
313 313 display: flex;
314   - justify-content: flex-start;
  314 + justify-content: space-between;
315 315 }
316 316 ::v-deep .setclass{
317 317 .el-dialog__header{
... ... @@ -319,7 +319,7 @@ border:1px solid #EBEEF5;
319 319 }
320 320 .el-dialog__title{
321 321 color:#000;
322   - font-size: 12px;
  322 + font-size: 14px;
323 323 }
324 324 }
325 325 ::v-deep .formyuzhi{
... ... @@ -333,7 +333,7 @@ border:1px solid #EBEEF5;
333 333 }
334 334 .el-form-item__label{
335 335 font-weight: 400;
336   - font-size: 12px;
  336 + font-size: 14px;
337 337 }
338 338  
339 339  
... ...
lvdao-miniapp/pages/details/details.vue
... ... @@ -194,8 +194,8 @@
194 194 <view class="banner-item position" v-if="tableData.shopName">
195 195 <view class="banner-item-title">位置信息</view>
196 196 <view style="margin-top: 16rpx;">
197   - <map style="width: 100%; height: 200rpx;">
198   - <view class="position-info" @click="gomapApp(latitude,longitude)">
  197 + <map style="width: 100%; height: 200rpx;" longitude="104.06730651855469" latitude="30.65681556429287" @click="gomapApp(latitude,longitude)">
  198 + <view class="position-info" >
199 199 <u-image :showLoading="true" :src="$imgUrl('/location-icon.png')" width="20rpx"
200 200 height="20rpx"></u-image>
201 201 <view>
... ...
lvdao-miniapp/pagesA/moreZu/moreZu.vue
... ... @@ -20,6 +20,22 @@
20 20 <u-parse :html="item.otherDescription" v-if="item.otherDescription!='<p><br></p>'"></u-parse>
21 21 <view v-else>无</view>
22 22 </view>
  23 + <view class="youTitle">
  24 + 免租期:
  25 + </view>
  26 + <view class="youcont">
  27 + <view v-if="item.rentFreePeriod!=''">{{item.rentFreePeriod}}</view>
  28 +
  29 + <view v-else>无</view>
  30 + </view>
  31 + <view class="youTitle">
  32 + 免租条件:
  33 + </view>
  34 + <view class="youcont">
  35 + <view v-if="item.rentFreeCondition!='<p><br></p>'">{{item.rentFreeCondition}}</view>
  36 +
  37 + <view v-else>无</view>
  38 + </view>
23 39 </view>
24 40 </view>
25 41 </view>
... ...
lvdao-miniapp/pagesA/myZiyuan/myZiyuan.vue
... ... @@ -72,7 +72,7 @@
72 72 },
73 73 methods: {
74 74 getALL() {
75   - this.pageindex.applicant = uni.getStorageSync('user').phone
  75 + // this.pageindex.relatedMerchants = uni.getStorageSync('user').phone
76 76 this.$http.sendRequest('/cerePlatformMerchant/queryByPage', 'POST', {
77 77 pageSize: 1,
78 78 pageNumber: 0,
... ...
lvdao-miniapp/utils/request.js
1 1  
2 2 // let hostall = window.location.href;
3 3 // let c1 = hostall.split('cdwlMall')[0];
4   -// let c1 = 'https://jy.scjysm.asia:18086/'
5   -let c1 = 'https://zhgw-uat.028wlkj.com/'
  4 +let c1 = 'https://jy.scjysm.asia:18086/'
  5 +// let c1 = 'https://zhgw-uat.028wlkj.com/'
6 6 //封装request请求
7 7 const sendRequest = (url, method = 'GET', data = {}, baseUrl,contentType) => {
8 8 //判断header提交数据类型
... ...
merchant-web-master/dist.zip
No preview for this file type
merchant-web-master/src/views/login/index.vue
... ... @@ -53,7 +53,8 @@
53 53 </el-input>
54 54 </el-form-item>
55 55 <div class="boxBottom">
56   - <el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">自动登录</el-checkbox>
  56 + <div></div>
  57 + <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">自动登录</el-checkbox> -->
57 58 <div class="forgetPsd" @click="runForgetPassord">忘记密码</div>
58 59 </div>
59 60  
... ... @@ -117,7 +118,7 @@
117 118 </div>
118 119 </el-form-item>
119 120 <div class="boxBottom">
120   - <el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">自动登录</el-checkbox>
  121 + <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin: 0 0 25px 0">自动登录</el-checkbox> -->
121 122 </div>
122 123  
123 124 <el-form-item style="width: 100%">
... ... @@ -615,8 +616,8 @@ export default {
615 616 justify-content: center;
616 617 align-items: center;
617 618 width: 100px;
618   - background: #eeeeee;
619   - color: #666666;
  619 + background: #3F9B6A;
  620 + color: #fff;
620 621 border: none;
621 622 }
622 623 img {
... ...