qj-common 4.1.42 → 4.1.43

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qj-common",
3
- "version": "4.1.42",
3
+ "version": "4.1.43",
4
4
  "description": "common files && template for qj-paas",
5
5
  "scripts": {
6
6
  "gulp": "gulp css"
@@ -15,4 +15,4 @@
15
15
  "not ie <= 8"
16
16
  ],
17
17
  "license": "MIT"
18
- }
18
+ }
@@ -2,9 +2,9 @@
2
2
  <div>
3
3
  <div class="template-table">
4
4
  <!--header-->
5
- <div class="tem-header" v-if="temInput">
5
+ <div class="tem-header" v-if="temInputPack">
6
6
  <ul class="clearfix">
7
- <li :class="{ li: temInput[0].btnArray }" :key="index" v-for="(item, index) in temInput">
7
+ <li :class="{ li: temInputPack[0].btnArray }" :key="index" v-for="(item, index) in temInputPack">
8
8
  <label v-if="'label' in item && item.label">{{ item.label }}:</label>
9
9
  <div v-if="'type' in item">
10
10
  <div v-if="item.type === 'text'">
@@ -88,7 +88,7 @@
88
88
  <!--input 支持搜索-->
89
89
  <div v-if="item.type === 'autocomplete'">
90
90
  <el-autocomplete :fetch-suggestions="querySearchAsync" :loadAll="(restaurants = item.restaurants)"
91
- :placeholder="item.placeholder" :rowkey="(rowkey = temtable.rowkey)" @select="handleSelect"
91
+ :placeholder="item.placeholder" :rowkey="(rowkey = temTablePack.rowkey)" @select="handleSelect"
92
92
  v-model.trim="item.value"></el-autocomplete>
93
93
  </div>
94
94
  </div>
@@ -98,7 +98,7 @@
98
98
  </div>-->
99
99
  </li>
100
100
  </ul>
101
- <template v-for="item in temInput" v-if="'btnArray' in item">
101
+ <template v-for="item in temInputPack" v-if="'btnArray' in item">
102
102
  <el-button :key="indexBtn" :type="itemBtn.type || 'primary'" @click="btn(itemBtn, indexBtn)"
103
103
  v-for="(itemBtn, indexBtn) in item.btnArray" v-if="itemBtn.type == 'query' || itemBtn.type == 'search'">
104
104
  {{ itemBtn.label }}</el-button>
@@ -120,32 +120,35 @@
120
120
  <!--main table-->
121
121
  <!-- {{activeName}} -->
122
122
  <div class="template-box" v-for="(item, index) in temTab.tabPane" v-if="activeName == index">
123
- <div class="tem-main" v-if="temTable">
124
- <h3 class="temTable-title" v-if="'title' in temTable ? temTable.title : ''">{{ temTable.title }}:</h3>
125
- <el-table :data="tableData" :empty-text="'emptyText' in temTable ? temTable.emptyText : '暂无数据'"
126
- :row-key="row_Key" :rowKey="(rowKey = temTable.rowKey ? temTable.rowKey : '')"
123
+ <div class="tem-main" v-if="temTablePack">
124
+ <h3 class="temTablePack-title" v-if="'title' in temTablePack ? temTablePack.title : ''">{{
125
+ temTablePack.title
126
+ }}:</h3>
127
+ <el-table :data="tableData" :empty-text="'emptyText' in temTablePack ? temTablePack.emptyText : '暂无数据'"
128
+ :row-key="row_Key" :rowKey="(rowKey = temTablePack.rowKey ? temTablePack.rowKey : '')"
127
129
  @select="handleSelectionChange" @select-all="handleSelectionChange" @toggleSelection="toggleSelection"
128
130
  ref="multipleTable" style="width: 100%" v-loading="loading" stripe
129
- :height="'tabHeight' in temTable ? temTable.tabHeight : false">
130
- <el-table-column :reserve-selection="temTable.reserve_selection ? true : false" type="selection"
131
- v-if="'selection' in temTable ? temTable.selection.state : false" width="40"></el-table-column>
131
+ :height="'tabHeight' in temTablePack ? temTablePack.tabHeight : false">
132
+ <el-table-column :reserve-selection="temTablePack.reserve_selection ? true : false" type="selection"
133
+ v-if="'selection' in temTablePack ? temTablePack.selection.state : false"
134
+ width="40"></el-table-column>
132
135
  <el-table-column :align="'align' in item ? item.align : ''" :key="index"
133
136
  :label="'label' in item ? item.label : ''" :min-width="'minWidth' in item ? item.minWidth : ''"
134
137
  :prop="'prop' in item ? item.prop : ''" :width="'width' in item ? item.width : 'auto'"
135
- v-for="(item, index) in temTable.tableHead" :fixed="'fixed' in item ? item.fixed : false"
138
+ v-for="(item, index) in temTablePack.tableHead" :fixed="'fixed' in item ? item.fixed : false"
136
139
  :show-overflow-tooltip="'overflow' in item ? item.overflow : false">
137
140
  <template slot-scope="scope">
138
141
  <template-table-content :item="item" :scope="scope" @changeGetData="getDataList">
139
142
  </template-table-content>
140
143
  </template>
141
144
  </el-table-column>
142
- <el-table-column :width="'tabBtnWidth' in temTable ? temTable.tabBtnWidth : '180'" label="操作"
143
- :fixed="'fixed' in temTable ? temTable.fixed : false"
144
- v-if="'tabBtnState' in temTable ? temTable.tabBtnState : true">
145
+ <el-table-column :width="'tabBtnWidth' in temTablePack ? temTablePack.tabBtnWidth : '180'" label="操作"
146
+ :fixed="'fixed' in temTablePack ? temTablePack.fixed : false"
147
+ v-if="'tabBtnState' in temTablePack ? temTablePack.tabBtnState : true">
145
148
  <template slot-scope="scope">
146
149
  <!--四个以内的按钮是这么显示-->
147
150
  <span :key="index" class="tem-span-btn" style="display: inline-block"
148
- v-for="(item, index) in temTable.tableBtn">
151
+ v-for="(item, index) in temTablePack.tableBtn">
149
152
  <template v-if="'renderTemp' in item">
150
153
  <child :item="item" :para="scope.row" :temp="item.renderTemp"></child>
151
154
  </template>
@@ -208,9 +211,10 @@
208
211
  v-else-if="'dataState' in item && scope.row.dataState == item.dataState && !item.props">
209
212
  {{ item.label }}</el-button>
210
213
  <el-button :class="'type' in item && item.type ? item.type : 'primary'"
211
- @click="handleClick(item, scope, index)" size="small" type="text" v-else-if="item.state">{{
212
- item.label
213
- }}</el-button>
214
+ @click="handleClick(item, scope, index)" size="small" type="text"
215
+ v-else-if="item.state">{{
216
+ item.label
217
+ }}</el-button>
214
218
  </template>
215
219
  </span>
216
220
  </template>
@@ -222,11 +226,11 @@
222
226
 
223
227
  <div class="page-box">
224
228
  <!-- 按钮部分 -->
225
- <div v-if="'tablePageBtn' in temTable">
229
+ <div v-if="'tablePageBtn' in temTablePack">
226
230
  <el-button :key="indexBtn" :type="itemBtn.type" @click="btn(itemBtn, indexBtn)"
227
- v-for="(itemBtn, indexBtn) in temTable.tablePageBtn">{{ itemBtn.label }}</el-button>
231
+ v-for="(itemBtn, indexBtn) in temTablePack.tablePageBtn">{{ itemBtn.label }}</el-button>
228
232
  </div>
229
- <div class="page-item" v-if="'tabpageState' in temTable ? temTable.tabpageState : true">
233
+ <div class="page-item" v-if="'tabpageState' in temTablePack ? temTablePack.tabpageState : true">
230
234
  <!--page-->
231
235
  <div class="tem-page" v-if="pagenation && pagenation.total">
232
236
  <!-- 'currentPage' in pagenation ? pagenation.currentPage : 1 -->
@@ -246,19 +250,21 @@
246
250
  <div v-else>
247
251
  <div class="template-box template-boild-box">
248
252
  <!--main table-->
249
- <div class="tem-main" v-if="temTable">
250
- <h3 class="temTable-title" v-if="'title' in temTable ? temTable.title : ''">{{ temTable.title }}:</h3>
251
- <el-table :data="tableData" :empty-text="'emptyText' in temTable ? temTable.emptyText : '暂无数据'"
252
- :row-key="row_Key" :rowKey="(rowKey = temTable.rowKey ? temTable.rowKey : '')"
253
+ <div class="tem-main" v-if="temTablePack">
254
+ <h3 class="temTablePack-title" v-if="'title' in temTablePack ? temTablePack.title : ''">{{
255
+ temTablePack.title }}:
256
+ </h3>
257
+ <el-table :data="tableData" :empty-text="'emptyText' in temTablePack ? temTablePack.emptyText : '暂无数据'"
258
+ :row-key="row_Key" :rowKey="(rowKey = temTablePack.rowKey ? temTablePack.rowKey : '')"
253
259
  @select="handleSelectionChange" @select-all="handleSelectionChange" @toggleSelection="toggleSelection"
254
260
  ref="multipleTable" style="width: 100%" v-loading="loading" stripe
255
- :height="'tabHeight' in temTable ? temTable.tabHeight : false">
256
- <el-table-column :reserve-selection="temTable.reserve_selection ? true : false" type="selection"
257
- v-if="'selection' in temTable ? temTable.selection.state : false" width="40"></el-table-column>
261
+ :height="'tabHeight' in temTablePack ? temTablePack.tabHeight : false">
262
+ <el-table-column :reserve-selection="temTablePack.reserve_selection ? true : false" type="selection"
263
+ v-if="'selection' in temTablePack ? temTablePack.selection.state : false" width="40"></el-table-column>
258
264
  <el-table-column :align="'align' in item ? item.align : ''" :key="index"
259
265
  :label="'label' in item ? item.label : ''" :min-width="'minWidth' in item ? item.minWidth : ''"
260
266
  :prop="'prop' in item ? item.prop : ''" :width="'width' in item ? item.width : 'auto'"
261
- v-for="(item, index) in temTable.tableHead" :fixed="'fixed' in item ? item.fixed : false"
267
+ v-for="(item, index) in temTablePack.tableHead" :fixed="'fixed' in item ? item.fixed : false"
262
268
  :show-overflow-tooltip="'overflow' in item ? item.overflow : false">
263
269
  <!-- min-width 产品后期要最小宽度,开发以改了部分,以无法修改,width 代替min-width -->
264
270
  <template slot-scope="scope">
@@ -266,14 +272,14 @@
266
272
  </template-table-content>
267
273
  </template>
268
274
  </el-table-column>
269
- <el-table-column :width="'tabBtnWidth' in temTable ? temTable.tabBtnWidth : '180'" label="操作"
270
- :fixed="'fixed' in temTable ? temTable.fixed : false"
271
- v-if="'tabBtnState' in temTable ? temTable.tabBtnState : true">
275
+ <el-table-column :width="'tabBtnWidth' in temTablePack ? temTablePack.tabBtnWidth : '180'" label="操作"
276
+ :fixed="'fixed' in temTablePack ? temTablePack.fixed : false"
277
+ v-if="'tabBtnState' in temTablePack ? temTablePack.tabBtnState : true">
272
278
  <template slot-scope="scope">
273
279
  <!--四个以内的按钮是这么显示-->
274
280
 
275
281
  <span :key="index" class="tem-span-btn" style="display: inline-block"
276
- v-for="(item, index) in temTable.tableBtn">
282
+ v-for="(item, index) in temTablePack.tableBtn">
277
283
  <template v-if="'renderTemp' in item">
278
284
  <child :item="item" :para="scope.row" :temp="item.renderTemp"></child>
279
285
  </template>
@@ -339,8 +345,8 @@
339
345
  {{ item.label }}</el-button>
340
346
  <el-button :class="'type' in item && item.type ? item.type : 'primary'"
341
347
  @click="handleClick(item, scope, index)" size="small" type="text" v-else-if="item.state">{{
342
- item.label
343
- }}</el-button>
348
+ item.label
349
+ }}</el-button>
344
350
  </template>
345
351
  </span>
346
352
  </template>
@@ -350,13 +356,13 @@
350
356
  </el-table>
351
357
  </div>
352
358
 
353
- <div class="page-box" v-if="temTable">
359
+ <div class="page-box" v-if="temTablePack">
354
360
  <!-- 按钮部分 -->
355
- <div v-if="'tablePageBtn' in temTable">
361
+ <div v-if="'tablePageBtn' in temTablePack">
356
362
  <el-button :key="indexBtn" :type="itemBtn.type" @click="btn(itemBtn, indexBtn)"
357
- v-for="(itemBtn, indexBtn) in temTable.tablePageBtn">{{ itemBtn.label }}</el-button>
363
+ v-for="(itemBtn, indexBtn) in temTablePack.tablePageBtn">{{ itemBtn.label }}</el-button>
358
364
  </div>
359
- <div class="page-item" v-if="'tabpageState' in temTable ? temTable.tabpageState : true">
365
+ <div class="page-item" v-if="'tabpageState' in temTablePack ? temTablePack.tabpageState : true">
360
366
  <!--page-->
361
367
  <div class="tem-page" v-if="pagenation && pagenation.total">
362
368
  <!-- 'currentPage' in pagenation ? pagenation.currentPage : 1 -->
@@ -384,7 +390,7 @@
384
390
  :width="'width' in dialogData.template ? dialogData.template.width : '660px'"
385
391
  v-if="dialogData && dialogData.template">
386
392
  <template-input :labelWidth="dialogData.template.labelWidth" :rules="dialogData.template.rules"
387
- :temInput="dialogData.template.html" @cancel="dialogCancel" @getData="getDataList"
393
+ :temInputPack="dialogData.template.html" @cancel="dialogCancel" @getData="getDataList"
388
394
  @handleSelect="handleSelect" @inputBlur="inputBlur" @inputBtnClick="inputBtnClick" @radioChange="radioChange"
389
395
  @selChange="selChange" ref="child"></template-input>
390
396
  </el-dialog>
@@ -424,8 +430,8 @@
424
430
  </div>
425
431
  <el-button :key="indexBtn" :type="itemBtn.type" @click="reviewClick(itemBtn, dialogDataSee.html)"
426
432
  v-for="(itemBtn, indexBtn) in item.btnArray" v-if="'btnArray' in item">{{
427
- itemBtn.label
428
- }}</el-button>
433
+ itemBtn.label
434
+ }}</el-button>
429
435
  </li>
430
436
  </ul>
431
437
  </el-dialog>
@@ -438,9 +444,51 @@ import templateTableContent from './templateUi/templateTableContent';
438
444
  import tempSelect from './components/temp-select';
439
445
  import templateInput from './templateInput';
440
446
  const querystring = require('querystring');
447
+ import { isUndefined, cloneDeep } from "lodash";
441
448
  import { parseTime } from '#/utils/index'; //时间格式化
442
449
  export default {
443
450
  props: ['temInput', 'params', 'temTable', 'temPage', 'temTab', 'url', 'temPageLayout', 'subtotal'],
451
+ computed: {
452
+ temInputPack() {
453
+
454
+ if (!this.temInput) {
455
+ return this.temInput
456
+ }
457
+ console.log(55555, this.temInput);
458
+ if (isUndefined(this.$route.meta.btnRules)) {
459
+ return this.temInput;
460
+ }
461
+ const index = this.temInput.findIndex(item => Array.isArray(item.btnArray));
462
+ if (index === -1) {
463
+ return this.temInput;
464
+ }
465
+
466
+ let inputData = cloneDeep(this.temInput)
467
+ const result = inputData[index];
468
+ result.btnArray = result.btnArray.filter(item1 => {
469
+ return this.$route.meta.btnRules.includes(item1.label)
470
+ })
471
+ return inputData;
472
+ },
473
+ temTablePack() {
474
+ if (!this.temTable) {
475
+ return this.temTable
476
+ }
477
+ if (isUndefined(this.$route.meta.btnRules)) {
478
+ return this.temTable;
479
+ }
480
+ if (!Array.isArray(this.temTable['tableBtn'])) {
481
+ return this.temTable
482
+ }
483
+
484
+ let tabBtnData = cloneDeep(this.temTable)
485
+
486
+ tabBtnData['tableBtn'] = tabBtnData['tableBtn'].filter(item1 => {
487
+ return this.$route.meta.btnRules.includes(item1.label)
488
+ })
489
+ return tabBtnData;
490
+ },
491
+ },
444
492
  components: {
445
493
  tempSelect,
446
494
  'template-table-content': templateTableContent,
@@ -469,7 +517,7 @@ export default {
469
517
  },
470
518
  },
471
519
  },
472
- data () {
520
+ data() {
473
521
  return {
474
522
  rowKey: '',
475
523
  row_Key: 'row[this.rowKey]',
@@ -514,8 +562,8 @@ export default {
514
562
  // beforeCreate() {
515
563
  // this.dialogData
516
564
  // },
517
- mounted () {
518
- // console.log(this.temInput, "ddd");
565
+ mounted() {
566
+ // console.log(this.temInputPack, "ddd");
519
567
  // 在template-table上新增加绑定一个temPageLayout,值是字符串,不传默认是'total, sizes, prev, pager, next, jumper',
520
568
  // 根据需要添加或者减少
521
569
  if (localStorage.getItem('currenPage')) {
@@ -543,14 +591,14 @@ export default {
543
591
  this.getDataList();
544
592
  },
545
593
  methods: {
546
- open (item, val, index) {
594
+ open(item, val, index) {
547
595
  console.log('2222++++++++++', item, val, index);
548
596
  if (val.row.dataState == -1 || val.row.dataState == 4) {
549
597
  this.$message.warning('暂无操作');
550
598
  return;
551
599
  }
552
600
  },
553
- btn (itemBtn, index) {
601
+ btn(itemBtn, index) {
554
602
  console.log(itemBtn, index, '+++++++++++++++++++++++++++++');
555
603
  if (itemBtn.id === 'query' || itemBtn.id === 'search') {
556
604
  //表示查询
@@ -580,27 +628,27 @@ export default {
580
628
  }
581
629
  // this.$emit("inputBtnClick", itemBtn, index);
582
630
  },
583
- inputBtnClick (itemBtn, indexBtn) {
631
+ inputBtnClick(itemBtn, indexBtn) {
584
632
  //input子组件传递的通用事件
585
633
  this.$emit('inputBtnClick', itemBtn, indexBtn);
586
634
  },
587
635
 
588
- dialogClose () {
636
+ dialogClose() {
589
637
  // console.log(this.$refs.child);
590
638
  this.$refs.child.setReset();
591
639
  this.dialogFormVisible = false;
592
640
  // console.log("close");
593
641
  },
594
- reviewClick (itemBtn, item) {
642
+ reviewClick(itemBtn, item) {
595
643
  if (itemBtn.id == 'review') {
596
644
  //表示确定
597
645
  this.setData(itemBtn.url, itemBtn, item);
598
646
  }
599
647
  },
600
- inputBlur (item) {
648
+ inputBlur(item) {
601
649
  this.$emit('inputBlur', item);
602
650
  },
603
- setData (url, btnarr, item) {
651
+ setData(url, btnarr, item) {
604
652
  if (url) {
605
653
  let data = {};
606
654
  btnarr.params.forEach((res) => {
@@ -629,7 +677,7 @@ export default {
629
677
  });
630
678
  }
631
679
  },
632
- getOption (e, item) {
680
+ getOption(e, item) {
633
681
  console.log(item, 'item');
634
682
  if (item.url && !item.state) {
635
683
  request({
@@ -641,7 +689,7 @@ export default {
641
689
  });
642
690
  }
643
691
  },
644
- prePage (item) {
692
+ prePage(item) {
645
693
  // console.log(item,'item2')
646
694
  --item.pagenation.page;
647
695
  // this.sltPage = item.pagenation.page;
@@ -655,7 +703,7 @@ export default {
655
703
  item.state = false;
656
704
  this.getSltInfo(item, true);
657
705
  },
658
- nextPage (item) {
706
+ nextPage(item) {
659
707
  // console.log(item,'item1')
660
708
  // console.log(this.pageCount,'this.pageCount')
661
709
  if (item.pagenation.page < item.pageCount) {
@@ -668,7 +716,7 @@ export default {
668
716
  this.$message.error('已到最后一页');
669
717
  }
670
718
  },
671
- remoteMethod (data) {
719
+ remoteMethod(data) {
672
720
  this.sltItem.pagenation.page = 1;
673
721
  this.sltItem.state = false;
674
722
  this.loadings = true;
@@ -679,8 +727,8 @@ export default {
679
727
  console.log(this.iptSltname, 'item');
680
728
  this.getSltInfo(this.sltItem, true);
681
729
  },
682
- filterData (data, item) { },
683
- getSltInfo (item, flag) {
730
+ filterData(data, item) { },
731
+ getSltInfo(item, flag) {
684
732
  this.sltItem = item;
685
733
  console.log(item, this.iptSltname, 'item');
686
734
  // this.sltItem=JSON.parse(JSON.stringify(item));
@@ -716,7 +764,7 @@ export default {
716
764
  });
717
765
  }
718
766
  },
719
- handleClick (item, val, index) {
767
+ handleClick(item, val, index) {
720
768
  console.log('xialacaozuo++++++++++++++++');
721
769
  // console.log(item);
722
770
  //index表示btn的位置
@@ -755,7 +803,7 @@ export default {
755
803
 
756
804
  this.$emit('tableBtnClick', val.row, item, index);
757
805
  },
758
- querySearchAsync (queryString, cb) {
806
+ querySearchAsync(queryString, cb) {
759
807
  var restaurants = this.restaurants;
760
808
  var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
761
809
 
@@ -764,34 +812,34 @@ export default {
764
812
  cb(results);
765
813
  }, 3000 * Math.random());
766
814
  },
767
- createStateFilter (queryString) {
815
+ createStateFilter(queryString) {
768
816
  return (state) => {
769
817
  return state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0;
770
818
  };
771
819
  },
772
- handleSelect (item) {
820
+ handleSelect(item) {
773
821
  console.log('开始选');
774
822
  this.$emit('handleSelect', item);
775
823
  },
776
- sizeChange (val) {
824
+ sizeChange(val) {
777
825
  this.data.rows = val;
778
826
  this.data.page = 1;
779
827
  this.getDataList();
780
828
  this.$emit("sizeChange", val);
781
829
  },
782
- currentChange (val) {
830
+ currentChange(val) {
783
831
  console.log('开始请求');
784
832
  this.data.page = val;
785
833
  this.getDataList();
786
834
  this.$emit('currentChange', val);
787
835
  },
788
- handleCommand (key, data) {
836
+ handleCommand(key, data) {
789
837
  console.log(key, data, 'f');
790
838
  //折叠按钮请求
791
839
  // this.$message("click on item " + command);
792
840
  // this.$emit("tableBtnClick", command); //抛出去,根据id来执行事件
793
841
  },
794
- importData (paramsUrl, btnId, jump) {
842
+ importData(paramsUrl, btnId, jump) {
795
843
  let paramsResult = null, //判断参数是否必传
796
844
  disabledPrompt = null, //参数必传的提示语
797
845
  disabledValueArray = null; //参数必传的name值的数组
@@ -803,8 +851,8 @@ export default {
803
851
  let params = {};
804
852
 
805
853
  //获取参数
806
- this.temInput &&
807
- this.temInput.forEach((el, index) => {
854
+ this.temInputPack &&
855
+ this.temInputPack.forEach((el, index) => {
808
856
  if ('disabledStatic' in el && el.disabledStatic) {
809
857
  //添加这个字段表示这个字段传递后,才可点击搜索框
810
858
  paramsResult = true; //设定为true,表示有这个字段
@@ -915,7 +963,7 @@ export default {
915
963
  }, 500);
916
964
  });
917
965
  },
918
- getDataList (paramsUrl, btnId) {
966
+ getDataList(paramsUrl, btnId) {
919
967
  if (this.clickState) {
920
968
  this.clickState = false;
921
969
 
@@ -938,8 +986,8 @@ export default {
938
986
  delete params.page;
939
987
  }
940
988
  //获取参数
941
- this.temInput &&
942
- this.temInput.forEach((el, index) => {
989
+ this.temInputPack &&
990
+ this.temInputPack.forEach((el, index) => {
943
991
  if ('disabledStatic' in el && el.disabledStatic) {
944
992
  //添加这个字段表示这个字段传递后,才可点击搜索框
945
993
  paramsResult = true; //设定为true,表示有这个字段
@@ -1090,7 +1138,7 @@ export default {
1090
1138
  }
1091
1139
  this.tableData = res.rows;
1092
1140
  this.$emit('getData', res.rows);
1093
- this.$emit('getTotal',res.total);
1141
+ this.$emit('getTotal', res.total);
1094
1142
  // 小计
1095
1143
  if (res.rows.length > 0) {
1096
1144
  if (this.subtotal && this.subtotal.length > 0) {
@@ -1122,7 +1170,7 @@ export default {
1122
1170
  }
1123
1171
  this.tableData = [];
1124
1172
  this.$emit('getData', []);
1125
- this.$emit('getTotal',0);
1173
+ this.$emit('getTotal', 0);
1126
1174
  }
1127
1175
  } else {
1128
1176
  if (this.temPage !== false) {
@@ -1130,12 +1178,12 @@ export default {
1130
1178
  }
1131
1179
  this.tableData = [];
1132
1180
  this.$emit('getData', []);
1133
- this.$emit('getTotal',0);
1181
+ this.$emit('getTotal', 0);
1134
1182
  }
1135
1183
  });
1136
1184
  }
1137
1185
  },
1138
- seeDetails (item, val, index) {
1186
+ seeDetails(item, val, index) {
1139
1187
  console.log(item, val);
1140
1188
  let nData = val.row;
1141
1189
  let params = {};
@@ -1170,7 +1218,7 @@ export default {
1170
1218
  this.showDetails(item, nData);
1171
1219
  }
1172
1220
  },
1173
- showDetails (item, data) {
1221
+ showDetails(item, data) {
1174
1222
  let template = JSON.parse(JSON.stringify(item.template)); //去除数据的双向绑定
1175
1223
  template.html.forEach((el) => {
1176
1224
  if (el.value === '') {
@@ -1207,7 +1255,7 @@ export default {
1207
1255
  // }
1208
1256
  this.dialogFormVisibleSee = true;
1209
1257
  },
1210
- accAdd (num1, num2) {
1258
+ accAdd(num1, num2) {
1211
1259
  var r1, r2, m;
1212
1260
  try {
1213
1261
  r1 = num1.toString().split('.')[1].length;
@@ -1223,18 +1271,18 @@ export default {
1223
1271
  // return (num1*m+num2*m)/m;
1224
1272
  return Math.round(num1 * m + num2 * m) / m;
1225
1273
  },
1226
- inputSelChange (val, item) {
1274
+ inputSelChange(val, item) {
1227
1275
  // this.getDataList();
1228
1276
  this.$emit('selChange', val, item);
1229
1277
  },
1230
- selChange (val, item) {
1278
+ selChange(val, item) {
1231
1279
  this.$emit('selChange', val, item);
1232
1280
  },
1233
- dialogCancel () {
1281
+ dialogCancel() {
1234
1282
  //取消
1235
1283
  this.dialogFormVisible = false;
1236
1284
  },
1237
- dialogConfirm (url, formName) {
1285
+ dialogConfirm(url, formName) {
1238
1286
  //编辑确定
1239
1287
  this.$refs[formName].validate((valid) => {
1240
1288
  //编辑验证
@@ -1271,10 +1319,10 @@ export default {
1271
1319
  }
1272
1320
  });
1273
1321
  },
1274
- addData (data) {
1322
+ addData(data) {
1275
1323
  // console.log(data, "dd");
1276
1324
  },
1277
- delData (val, item) {
1325
+ delData(val, item) {
1278
1326
  let promptTitle = item.promptTitle ? item.promptTitle : '是否确认删除?';
1279
1327
  this.$confirm(promptTitle, {
1280
1328
  center: true,
@@ -1300,21 +1348,21 @@ export default {
1300
1348
  });
1301
1349
  });
1302
1350
  },
1303
- handleAvatarSuccess (res, file) {
1351
+ handleAvatarSuccess(res, file) {
1304
1352
  console.log(res, file);
1305
1353
  this.imageUrl = URL.createObjectURL(file.raw);
1306
1354
  },
1307
- handleClickTab (tab, event) {
1355
+ handleClickTab(tab, event) {
1308
1356
  //tab事件操作
1309
1357
  this.$emit('handleClickTab', this.temTab.tabPane[this.activeName]);
1310
1358
  this.data.page = 1;
1311
1359
  this.getDataList();
1312
1360
  },
1313
- exceed () {
1361
+ exceed() {
1314
1362
  //图片个数超出的验证
1315
1363
  this.$message.error(`最多上传${this.limit}张!`);
1316
1364
  },
1317
- beforeAvatarUpload (file) {
1365
+ beforeAvatarUpload(file) {
1318
1366
  //上传之前的回调
1319
1367
  const fileType = /\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(file.name);
1320
1368
  if (!fileType) {
@@ -1326,7 +1374,7 @@ export default {
1326
1374
  }
1327
1375
  return isLt2M && fileType;
1328
1376
  },
1329
- picUpload (file) {
1377
+ picUpload(file) {
1330
1378
  // this.imgLoading = true;
1331
1379
  const formData = new FormData(); //转表单对象
1332
1380
  formData.append('file', file.file);
@@ -1351,14 +1399,14 @@ export default {
1351
1399
  console.log('上传失败');
1352
1400
  });
1353
1401
  },
1354
- handleRemove (file, fileList) {
1402
+ handleRemove(file, fileList) {
1355
1403
  //删除图片
1356
1404
  this.uploadImgValue = this.uploadImgValue.filter((val) => {
1357
1405
  return val.uid !== file.uid;
1358
1406
  });
1359
1407
  console.log(this.uploadImgValue);
1360
1408
  },
1361
- handleSelectionChange (selection, row) {
1409
+ handleSelectionChange(selection, row) {
1362
1410
  console.log('多选222222222222', selection, row, this.tableData);
1363
1411
  this.$emit('handleSelectionChange', selection, row);
1364
1412
  localStorage.setItem('selectList', this.tableData);
@@ -1375,7 +1423,7 @@ export default {
1375
1423
  }
1376
1424
  console.log('多页', this.select_more);
1377
1425
  },
1378
- toggleSelection (rows) {
1426
+ toggleSelection(rows) {
1379
1427
  if (rows) {
1380
1428
  rows.forEach((row) => {
1381
1429
  this.$refs.multipleTable.toggleRowSelection(row, true);
@@ -1385,7 +1433,7 @@ export default {
1385
1433
  }
1386
1434
  this.$emit('toggleSelection', row);
1387
1435
  },
1388
- dropdownState (state, arr) {
1436
+ dropdownState(state, arr) {
1389
1437
  arr.every((res) => {
1390
1438
  return res.dataState == state;
1391
1439
  });
@@ -1395,7 +1443,7 @@ export default {
1395
1443
  // console.log(aa);
1396
1444
  },
1397
1445
 
1398
- changeData (item, val) {
1446
+ changeData(item, val) {
1399
1447
  let params = 'params' in item ? JSON.parse(JSON.stringify(item.params)) : {};
1400
1448
  for (let el in params) {
1401
1449
  if (params[el] === '') {
@@ -1448,7 +1496,7 @@ export default {
1448
1496
  }
1449
1497
  }
1450
1498
  },
1451
- postData (url, params) {
1499
+ postData(url, params) {
1452
1500
  request({
1453
1501
  url: url,
1454
1502
  method: 'post',
@@ -1467,25 +1515,25 @@ export default {
1467
1515
  }
1468
1516
  });
1469
1517
  },
1470
- radioChange (val, item) {
1518
+ radioChange(val, item) {
1471
1519
  this.$emit('radioChange', val, item);
1472
1520
  },
1473
1521
  },
1474
1522
  watch: {
1475
1523
  temPage: {
1476
- handler () {
1524
+ handler() {
1477
1525
  this.pagenation = this.temPage;
1478
1526
  },
1479
1527
  deep: true, //深度监听
1480
1528
  },
1481
- dialogFormVisible (val) {
1529
+ dialogFormVisible(val) {
1482
1530
  if (this.dialogFormVisible) {
1483
1531
  this.$nextTick(function () {
1484
1532
  this.$refs.child.clearValidate();
1485
1533
  });
1486
1534
  }
1487
1535
  },
1488
- temInput (val) {
1536
+ temInputPack(val) {
1489
1537
  console.log(val, 'sss');
1490
1538
  },
1491
1539
  $route: function (to, form) {
@@ -1508,19 +1556,24 @@ export default {
1508
1556
  height: 30px !important;
1509
1557
  border-radius: 2px !important;
1510
1558
  }
1559
+
1511
1560
  .el-input__inner {
1512
1561
  border-radius: 2px;
1513
1562
  }
1563
+
1514
1564
  .tem-header .el-input {
1515
1565
  width: inherit;
1516
1566
  }
1567
+
1517
1568
  .tem-header li {
1518
1569
  margin-bottom: 10px !important;
1519
1570
  }
1571
+
1520
1572
  .tem-header .li {
1521
1573
  margin-bottom: 0px !important;
1522
1574
  line-height: 0;
1523
1575
  }
1576
+
1524
1577
  // .tem-header .el-input .el-input__inner {
1525
1578
  // height: 30px;
1526
1579
  // line-height: 30px;
@@ -1530,10 +1583,11 @@ export default {
1530
1583
  // text-overflow: ellipsis;
1531
1584
  // white-space: nowrap;
1532
1585
  // }
1533
- .tem-header .el-input .el-input__inner + .el-input__suffix {
1586
+ .tem-header .el-input .el-input__inner+.el-input__suffix {
1534
1587
  right: 0px !important;
1535
1588
  }
1536
- .el-tabs--border-card > .el-tabs__header {
1589
+
1590
+ .el-tabs--border-card>.el-tabs__header {
1537
1591
  background-color: #fff !important;
1538
1592
  border-bottom: 1px solid transparent !important;
1539
1593
  }
@@ -1541,46 +1595,56 @@ export default {
1541
1595
  .el-table thead.has-gutter tr th {
1542
1596
  background: #f3f4f5;
1543
1597
  }
1598
+
1544
1599
  .el-table .el-table__header .cell {
1545
1600
  color: #666;
1546
1601
  font-weight: normal;
1547
1602
  line-height: 20px;
1548
1603
  text-align: left !important;
1549
1604
  }
1605
+
1550
1606
  .el-table .el-table__body .cell {
1551
1607
  font-size: 12px;
1552
1608
  text-align: left !important;
1553
1609
  }
1554
- .el-tabs--border-card > .el-tabs__content {
1610
+
1611
+ .el-tabs--border-card>.el-tabs__content {
1555
1612
  padding: 0 !important;
1556
1613
  }
1614
+
1557
1615
  .template-box {
1558
1616
  padding: 0 15px 20px 15px !important;
1559
1617
  background: #fff;
1560
1618
  }
1619
+
1561
1620
  .template-boild-box {
1562
1621
  // border: 1px solid #ededed !important;
1563
1622
  box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1564
1623
  -webkit-box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1565
1624
  }
1625
+
1566
1626
  .el-tabs--border-card {
1567
1627
  border: 1px solid #ededed !important;
1568
1628
  box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1569
1629
  -webkit-box-shadow: 0 0px 0px 0 transparent, 0 0 0px 0 transparent !important;
1570
1630
  }
1571
- .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
1631
+
1632
+ .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
1572
1633
  border-left-color: transparent !important;
1573
1634
  }
1574
- .el-tabs--border-card > .el-tabs__header .el-tabs__item {
1635
+
1636
+ .el-tabs--border-card>.el-tabs__header .el-tabs__item {
1575
1637
  border-right: 1px solid #e0e0e0 !important;
1576
1638
  height: 18px;
1577
1639
  line-height: 18px;
1578
1640
  margin: 20px 0 !important;
1579
1641
  font-size: 16px;
1580
1642
  }
1581
- .el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child {
1643
+
1644
+ .el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child {
1582
1645
  border: none !important;
1583
1646
  }
1647
+
1584
1648
  .tem-table-img {
1585
1649
  width: 40px;
1586
1650
  height: 40px;
@@ -1588,55 +1652,69 @@ export default {
1588
1652
  margin-right: 10px;
1589
1653
  float: left;
1590
1654
  }
1655
+
1591
1656
  .tem-table-img-center {
1592
1657
  width: 40px;
1593
1658
  height: 40px;
1594
1659
  border-radius: 2px;
1595
1660
  }
1661
+
1596
1662
  .tem-img-list img {
1597
1663
  width: 150px;
1598
1664
  display: inline-block;
1599
1665
  }
1666
+
1600
1667
  .el-table td {
1601
1668
  padding: 5px 0 !important;
1602
1669
  }
1670
+
1603
1671
  .tem-ul-alert li {
1604
1672
  line-height: 30px;
1605
1673
  }
1674
+
1606
1675
  .tem-ul-alert li label {
1607
1676
  float: left;
1608
1677
  }
1678
+
1609
1679
  .tem-span-btn button {
1610
1680
  margin: 0;
1611
1681
  margin-right: 10px;
1612
1682
  }
1683
+
1613
1684
  .el-dialog {
1614
1685
  width: 660px;
1615
1686
  }
1687
+
1616
1688
  .el-upload-list--picture-card .el-upload-list__item,
1617
1689
  .el-upload--picture-card {
1618
1690
  width: 100px;
1619
1691
  height: 100px;
1620
1692
  }
1693
+
1621
1694
  .el-upload--picture-card {
1622
1695
  line-height: 104px;
1623
1696
  }
1697
+
1624
1698
  .el-form-item__content .el-loading-mask {
1625
1699
  width: 102px;
1626
1700
  height: 102px;
1627
1701
  }
1702
+
1628
1703
  .el-upload-add .el-loading-mask {
1629
1704
  top: -36px;
1630
1705
  right: 72px;
1631
1706
  left: initial;
1632
1707
  }
1708
+
1633
1709
  .mar-t10 {
1634
1710
  margin-top: 10px;
1635
1711
  }
1712
+
1636
1713
  .btn-custom-cancel {
1637
1714
  float: right;
1638
1715
  margin-left: 10px;
1639
1716
  }
1717
+
1640
1718
  .el-checkbox {
1641
1719
  margin-left: 15px;
1642
1720
  }
@@ -1644,31 +1722,39 @@ export default {
1644
1722
  .el-cascader-menu__item {
1645
1723
  padding: 8px !important;
1646
1724
  }
1725
+
1647
1726
  .el-cascader-menu {
1648
1727
  height: 550px !important;
1649
1728
  min-width: 120px !important;
1650
1729
  }
1730
+
1651
1731
  .el-message-box {
1652
1732
  width: 390px !important;
1733
+
1653
1734
  &.el-message-box--center {
1654
1735
  padding-bottom: 20px;
1655
1736
  }
1737
+
1656
1738
  /deep/ .el-message-box__title {
1657
1739
  justify-content: flex-start !important;
1658
1740
  }
1741
+
1659
1742
  .el-message-box__content {
1660
1743
  padding: 0;
1661
1744
  }
1745
+
1662
1746
  .el-message-box__message {
1663
1747
  text-align: center;
1664
1748
  font-size: 18px;
1665
1749
  margin: 30px 0;
1666
1750
  }
1751
+
1667
1752
  .el-message-box__btns {
1668
1753
  text-align: center;
1669
1754
  // margin-bottom: 30px;
1670
1755
  }
1671
1756
  }
1757
+
1672
1758
  // .el-message-box {
1673
1759
  // width: 590px !important;
1674
1760
  // .el-message-box--center {
@@ -1694,14 +1780,19 @@ export default {
1694
1780
  .el-select__tags-text {
1695
1781
  display: inline-block;
1696
1782
  max-width: 84px;
1697
- white-space: nowrap; /*规定段落中的文本不进行换行*/
1698
- overflow: hidden; /*内容会被修剪,并且其余内容是不可见的。*/
1699
- text-overflow: ellipsis; /*显示省略号来代表被修剪的文本*/
1783
+ white-space: nowrap;
1784
+ /*规定段落中的文本不进行换行*/
1785
+ overflow: hidden;
1786
+ /*内容会被修剪,并且其余内容是不可见的。*/
1787
+ text-overflow: ellipsis;
1788
+ /*显示省略号来代表被修剪的文本*/
1700
1789
  }
1701
1790
  }
1791
+
1702
1792
  .el-select .el-tag__close.el-icon-close {
1703
1793
  top: -6px;
1704
1794
  }
1795
+
1705
1796
  .el-select__tags {
1706
1797
  white-space: nowrap;
1707
1798
  height: 30px;
@@ -1714,108 +1805,140 @@ export default {
1714
1805
  content: '\e6e1' !important;
1715
1806
  }
1716
1807
  }
1808
+
1717
1809
  .page-count {
1718
1810
  color: #333;
1719
1811
  font-size: 14px;
1812
+
1720
1813
  p {
1721
1814
  margin-left: 20px;
1722
1815
  }
1723
1816
  }
1817
+
1724
1818
  /**color**/
1725
1819
 
1726
1820
  .success {
1727
1821
  color: #67c23a;
1822
+
1728
1823
  &:focus {
1729
1824
  color: #67c23a;
1730
1825
  }
1826
+
1731
1827
  &:link {
1732
1828
  color: #67c23a;
1733
1829
  }
1830
+
1734
1831
  &:hover {
1735
1832
  color: #67c23a;
1736
1833
  }
1834
+
1737
1835
  &:active {
1738
1836
  color: #67c23a;
1739
1837
  }
1838
+
1740
1839
  &:visited {
1741
1840
  color: #67c23a;
1742
1841
  }
1743
1842
  }
1843
+
1744
1844
  .info {
1745
1845
  color: #909399;
1846
+
1746
1847
  &:focus {
1747
1848
  color: #909399;
1748
1849
  }
1850
+
1749
1851
  &:link {
1750
1852
  color: #909399;
1751
1853
  }
1854
+
1752
1855
  &:hover {
1753
1856
  color: #909399;
1754
1857
  }
1858
+
1755
1859
  &:active {
1756
1860
  color: #909399;
1757
1861
  }
1862
+
1758
1863
  &:visited {
1759
1864
  color: #909399;
1760
1865
  }
1761
1866
  }
1867
+
1762
1868
  .warning {
1763
1869
  color: #e6a23c;
1870
+
1764
1871
  &:focus {
1765
1872
  color: #e6a23c;
1766
1873
  }
1874
+
1767
1875
  &:link {
1768
1876
  color: #e6a23c;
1769
1877
  }
1878
+
1770
1879
  &:hover {
1771
1880
  color: #e6a23c;
1772
1881
  }
1882
+
1773
1883
  &:active {
1774
1884
  color: #e6a23c;
1775
1885
  }
1886
+
1776
1887
  &:visited {
1777
1888
  color: #e6a23c;
1778
1889
  }
1779
1890
  }
1891
+
1780
1892
  .danger {
1781
1893
  color: #f56c6c;
1782
1894
 
1783
1895
  &:focus {
1784
1896
  color: #f56c6c;
1785
1897
  }
1898
+
1786
1899
  &:link {
1787
1900
  color: #f56c6c;
1788
1901
  }
1902
+
1789
1903
  color: #f56c6c;
1904
+
1790
1905
  &:hover {
1791
1906
  color: #f56c6c;
1792
1907
  }
1908
+
1793
1909
  &:active {
1794
1910
  color: #f56c6c;
1795
1911
  }
1912
+
1796
1913
  &:visited {
1797
1914
  color: #f56c6c;
1798
1915
  }
1799
1916
  }
1917
+
1800
1918
  .dialogSee-ui {
1801
1919
  padding-bottom: 30px;
1802
1920
  }
1921
+
1803
1922
  .dialogSee-ui li {
1804
1923
  margin: 10px 0;
1805
1924
  }
1925
+
1806
1926
  .dialogSee-ui li img {
1807
1927
  width: 200px;
1808
1928
  }
1929
+
1809
1930
  .dialogSee-textarea {
1810
1931
  width: 360px;
1811
1932
  white-space: normal;
1812
1933
  word-break: break-all;
1813
1934
  }
1935
+
1814
1936
  .dialogSee-ui label {
1815
1937
  display: block;
1816
1938
  text-align: right;
1817
1939
  float: left;
1818
1940
  }
1941
+
1819
1942
  .dialog-main {
1820
1943
  float: left;
1821
1944
  }
@@ -1823,15 +1946,18 @@ export default {
1823
1946
  .tem-table-span {
1824
1947
  text-align: left;
1825
1948
  }
1949
+
1826
1950
  .clearfix:after {
1827
1951
  content: '';
1828
1952
  display: block;
1829
1953
  clear: both;
1830
1954
  }
1955
+
1831
1956
  .template-table {
1832
1957
  //margin: 10px;
1833
1958
  overflow: auto;
1834
1959
  }
1960
+
1835
1961
  .tem-header {
1836
1962
  // margin-bottom: 30px;
1837
1963
  padding: 20px;
@@ -1839,33 +1965,40 @@ export default {
1839
1965
  border: 1px solid #ededed;
1840
1966
  margin-bottom: 12px;
1841
1967
  }
1968
+
1842
1969
  .tem-header li {
1843
1970
  // float: left;
1844
1971
  display: inline-block;
1845
1972
  margin-right: 20px;
1846
1973
  margin-bottom: 20px;
1847
1974
  }
1848
- .tem-header li > div {
1975
+
1976
+ .tem-header li>div {
1849
1977
  display: inline-block;
1850
1978
  }
1979
+
1851
1980
  .tem-header li label {
1852
1981
  font-size: 14px;
1853
1982
  color: #666;
1854
1983
  }
1855
- .temTable-title {
1984
+
1985
+ .temTablePack-title {
1856
1986
  font-weight: normal;
1857
1987
  font-size: 16px;
1858
1988
  margin: 10px 0 10px;
1859
1989
  }
1990
+
1860
1991
  // .template-table .el-select {
1861
1992
  // width: 140px;
1862
1993
  // }
1863
1994
  .el-date-editor .el-range-separator {
1864
1995
  width: auto;
1865
1996
  }
1997
+
1866
1998
  .el-date-editor--daterange.el-input__inner {
1867
1999
  width: 320px;
1868
2000
  }
2001
+
1869
2002
  .avatar-uploader .el-upload {
1870
2003
  border: 1px dashed #d9d9d9;
1871
2004
  border-radius: 6px;
@@ -1873,9 +2006,11 @@ export default {
1873
2006
  position: relative;
1874
2007
  overflow: hidden;
1875
2008
  }
2009
+
1876
2010
  .avatar-uploader .el-upload:hover {
1877
2011
  border-color: #409eff;
1878
2012
  }
2013
+
1879
2014
  .avatar-uploader-icon {
1880
2015
  font-size: 28px;
1881
2016
  color: #8c939d;
@@ -1887,27 +2022,35 @@ export default {
1887
2022
  border-radius: 6px;
1888
2023
  background-color: #fbfdff;
1889
2024
  }
2025
+
1890
2026
  .avatar {
1891
2027
  width: 100px;
1892
2028
  height: 100px;
1893
2029
  display: block;
1894
2030
  }
2031
+
1895
2032
  .el-upload,
1896
2033
  .el-upload img {
1897
2034
  /* border: 1px dashed #c0ccda; */
1898
2035
  border-radius: 6px;
1899
2036
  }
2037
+
1900
2038
  .page-box {
1901
2039
  display: flex;
1902
- display: -webkit-flex; /* Safari */
2040
+ display: -webkit-flex;
2041
+ /* Safari */
1903
2042
  margin: 20px 0 0;
1904
2043
  }
2044
+
1905
2045
  .page-item {
1906
- flex-grow: 1; /* default 0 */
2046
+ flex-grow: 1;
2047
+ /* default 0 */
1907
2048
  }
2049
+
1908
2050
  .selectJob {
1909
2051
  text-align: center;
1910
2052
  padding: 10px 0;
2053
+
1911
2054
  span {
1912
2055
  width: 120px;
1913
2056
  overflow: hidden;