From 7d960355fd82a106ae8e15f6f83d4324145e7b24 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 10 十一月 2023 09:51:46 +0800
Subject: [PATCH] modified: src/views/common/param-mergeTemplate.vue modified: src/views/technology/routing/routing-form.vue
---
src/views/basic/param/index.vue | 826 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 483 insertions(+), 343 deletions(-)
diff --git a/src/views/basic/param/index.vue b/src/views/basic/param/index.vue
index c9bffc1..42a7e3a 100644
--- a/src/views/basic/param/index.vue
+++ b/src/views/basic/param/index.vue
@@ -1,296 +1,261 @@
<template>
- <div class="mod-config">
- <basic-container>
- <!-- <ttable
- :table="table"
- :row-key="id"
- :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
- @handleSelectionChange="handleSelectionChange"
- :uploadInfo="uploadInfo"
- :prelang="prelang"
- :options="options"
- :ajaxFun="ajaxFun"
- ref="paramTable"
- >
- <template #toolbar></template>
- </ttable> -->
- <el-row style="margin-left: 10px;">
- <el-form :inline="true" :model="table" class="demo-form-inline">
- <el-form-item label="鍙傛暟椤�">
- <el-input v-model="table.param" placeholder="鍙傛暟椤�"></el-input>
- </el-form-item>
- <el-form-item label="鍙傛暟缂栧彿">
- <el-input v-model="table.code" placeholder="鍙傛暟缂栧彿"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="onSearch">鏌ヨ</el-button>
- </el-form-item>
- </el-form>
- </el-row>
- <el-row style="margin-left: 10px;height: 80vh;">
+ <div>
+ <div class="param-basic">
+ <el-form style="width:100%;margin-top: 20px;" class="l-mes" :inline="true" :model="searchForm">
<el-row>
- <el-button type="defult" @click="addOrUpdateHandle">鏂板</el-button>
- <el-button type="defult" @click="onSearch">瀵煎叆</el-button>
- <!-- <el-button type="defult" @click="isExpandAllClick">灞曞紑/鎶樺彔</el-button> -->
+ <el-col :span="4">
+ <el-form-item label="鍙傛暟椤�:">
+ <el-input clearable style="width: 100%;" v-model="searchForm.param" placeholder="鍙傛暟椤�"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="5">
+ <el-form-item label="鍙傛暟缂栧彿:">
+ <el-input clearable style="width: 100%;" v-model="searchForm.code" placeholder="鍙傛暟缂栧彿"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item class="btn-group">
+ <el-button type="" @click="onSearch">鏌ヨ</el-button>
+ <el-button type="primary" @click="addOrUpdateHandle">鏂板</el-button>
+ <el-button @click="showImportDialog">瀵煎叆</el-button>
+ </el-form-item>
+ </el-col>
</el-row>
- <el-row style="padding-top: 20px;">
- <!-- 琛ㄦ牸鏁版嵁鍖�-->
- <el-table height="480" style="width: 100%;" :data="table.data" row-key="id"
- :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
- <el-table-column type="index" label="搴忓彿" width="50">
- </el-table-column>
- <el-table-column prop="code" label="鍙傛暟缂栧彿"></el-table-column>
- <el-table-column prop="parameterItem" label="鍙傛暟椤�"></el-table-column>
- <el-table-column prop="type" label="鍙傛暟绫诲瀷">
- <template slot-scope="scope">
- <el-col v-show="scope.row.bianJi === false">{{ scope.row.type }}</el-col>
- <el-col v-show="scope.row.bianJi">
- <el-select @change="changeType(scope.row)" v-model="scope.row.type" placeholder="璇烽�夋嫨">
- <el-option v-for="item in optionType" :key="item.id" :label="item.label" :value="item.label">
- </el-option>
- </el-select>
- </el-col>
- </template>
- </el-table-column>
- <el-table-column prop="parameterFormat" label="鍙傛暟鏍煎紡">
- <template slot-scope="scope">
- <el-col v-if="scope.row.bianJi === false">
- {{ scope.row.parameterFormat }}
- </el-col>
- <el-col style="margin-bottom: 0 !important;" v-if="scope.row.bianJi">
- <el-col v-if="scope.row.isSelect === false">
- <el-input v-model="scope.row.parameterFormat" placeholder="鍙傛暟鏍煎紡"></el-input>
- </el-col>
- <el-col v-if="scope.row.isSelect">
- <el-select v-model="scope.row.dict" filterable placeholder="璇烽�夋嫨鏁版嵁瀛楀吀" style="width:100%">
- <el-option v-for="(item, index) in dictOptions" :label="item.description" :value="item.type"
- :key="index">
- </el-option>
- </el-select>
- </el-col>
- </el-col>
- </template>
- </el-table-column>
- <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
- <el-table-column prop="code" label="鎿嶄綔">
- <template slot-scope="scope">
- <el-row style=" display: flex;width: 100%;">
- <el-col><el-button type="text">鍒犻櫎</el-button></el-col>
- <el-col v-if="scope.row.isBianji">
- <el-button @click="bianji(scope.row)" type="text">{{ scope.row.bianJiBtn }}</el-button>
- </el-col>
- </el-row>
- </template>
- </el-table-column>
- </el-table>
- <el-row style="display: flex; justify-content: end;">
- <el-pagination :current-page="table.currentPage" @current-change="handlesCurrentChange"
- @size-change="sizeChangeHandle" :page-sizes="[10, 20, 50, 100]" :page-size="table.pageSize"
- layout="total, sizes, prev, pager, next, jumper" :total="table.total"></el-pagination>
- </el-row>
- </el-row>
- </el-row>
- <!-- 寮圭獥, 鏂板 / 淇敼 -->
- <table-form v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getData"></table-form>
+ </el-form>
+ </div>
+ <basic-container>
+ <avue-crud :data="tableData" ref="crud" :option="option" :span-method="spanMethod" @refresh-change="getData"
+ :page="page" :table-loading="loading" @row-update="updateParam" @row-del="delParam">
+ <template #menu="{ row, index }">
+ <el-button type="text" icon="el-icon-edit" size="small" @click="showEdit(row, index)">缂栬緫</el-button>
+ <el-button type="text" icon="el-icon-delete" size="small" @click="showDel(row, index)">鍒犻櫎</el-button>
+ </template>
+ <template slot-scope="scope" slot="paramTypeForm">
+ <el-select v-model="scope.row.paramType" @change="changeType(scope.row)" filterable placeholder="璇烽�夋嫨鍙傛暟绫诲瀷"
+ :disabled="formDisabled">
+ <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" />
+ </el-select>
+ </template>
+ <template slot="paramFormatLabel" slot-scope="scope">
+ <span v-if="scope.row.paramType != '2'">鍙傛暟鏍煎紡</span>
+ <span v-else>鏁版嵁瀛楀吀</span>
+ </template>
+ <template slot-scope="scope" slot="paramFormatForm">
+ <el-input v-if="scope.row.paramType != '2'" v-model="scope.row.paramFormat" placeholder="璇疯緭鍏ュ弬鏁版牸寮�"
+ :disabled="formDisabled" />
+ <el-select v-else v-model="scope.row.paramFormat" filterable placeholder="璇烽�夋嫨鏁版嵁瀛楀吀" :disabled="formDisabled">
+ <el-option v-for="(item, index) in dictOptions" :key="index" :label="item.description" :value="item.type" />
+ </el-select>
+ </template>
+ </avue-crud>
</basic-container>
+ <!-- 寮圭獥, 鏂板 / 淇敼 -->
+ <table-form v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getData"></table-form>
+ <el-dialog title="瀵煎叆" :visible.sync="importDialog" width="22%">
+ <el-upload ref="upload" style="width:100%;" class="upload-demo" drag action="#" :multiple="false"
+ :file-list="fileList" :auto-upload="false" show-file-list :on-change="handleUpload">
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ <div class="el-upload__tip" slot="tip">
+ 鍙兘涓婁紶xls/xlsx鏂囦欢锛屼笖涓嶈秴杩�10MB
+ <el-button type="text" style="font-size:15px;text-decoration: underline;"
+ @click="downloadTemplate">涓嬭浇妯℃澘</el-button>
+ </div>
+ </el-upload>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="importDialog = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="confirmImport()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
+
<script>
-import { fetchList, delObj } from '@/api/basic/param'
+import { fetchList, delObj, putObj, uploadParam } from '@/api/basic/param'
+import { uploadTemplate } from '@/api/basic/template'
import TableForm from './param-form'
-import ttable from '@/views/common/ztt-table.vue'
import { mapGetters } from 'vuex'
-import { remote } from '../../../api/admin/dict'
+import { remote, fetchList as fetchDictList } from '@/api/admin/dict'
export default {
data() {
return {
+ fileList: [],
+ importDialog: false,
+ formDisabled: false,
dictOptions: [],
- optionType: [],
- isExpandAll: false,
- // 閲嶆柊娓叉煋琛ㄦ牸鐘舵��
- refreshTable: true,
- ajaxFun: fetchList,
typeOptions: [],
- multipleSelection: [],
- isShowQuery: false,
- uploadInfo: {
- // 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl
- isShow: true,
- url: '/mes/param/upload'
- },
- prelang: 'operation',
- options: {
- height: 300, // 榛樿楂樺害-涓轰簡琛ㄥご鍥哄畾
- stripe: true, // 鏄惁涓烘枒椹汗 table
- highlightCurrentRow: false, // 鏄惁瑕侀珮浜綋鍓嶈
- border: true, // 鏄惁鏈夌旱鍚戣竟妗�
- lazy: false, // 鏄惁闇�瑕佹噿鍔犺浇
- fit: true, // 鍒楃殑瀹藉害鏄惁鑷拺寮�
- multiSelect: false, //
- seqNo: true,
- isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳
- isSearch: false, // 楂樼骇鏌ヨ鎸夐挳
- defaultOrderBy: { column: 'createTime', direction: 'desc' }
- },
- table: {
+ searchForm: {
param: null,
- total: 0,
- code: null,
+ code: null
+ },
+ loading: true,
+ page: {
+ total: 10,
currentPage: 1,
- pageSize: 20,
- data: [],
- // 鏍囬
+ pageSize: 10
+ },
+ tableData: [],
+ option: {
+ height: 585,
+ columnBtn: false,
+ index: true,
+ indexLabel: '搴忓彿',
+ menuAlign: 'center',
+ editBtn: false,
+ delBtn: false,
+ addBtn: false,
+ border: true,
+ align: 'center',
column: [
{
- minWidth: 'code',
- prop: 'code',
label: '鍙傛暟缂栧彿',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'text',
- render: { fun: this.addOrUpdateHandle }
+ prop: 'code',
+ disabled: true
},
{
- minWidth: '120',
- prop: 'parameterItem',
label: '鍙傛暟椤�',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'text'
+ prop: 'paramItem',
+ disabled: true
},
{
- minWidth: '120',
- prop: 'second',
label: '浜岀骇鍙傛暟',
- sort: true,
- isTrue: true,
- isSearch: false,
- searchInfoType: 'text'
+ prop: 'paramItemTwo',
+ disabled: true
},
{
- minWidth: '130',
- prop: 'third',
label: '涓夌骇鍙傛暟',
- sort: true,
- isTrue: true,
- isSearch: false,
- searchInfoType: 'text'
+ prop: 'paramItemThree',
+ disabled: true
},
{
- minWidth: '140',
- prop: 'type',
label: '鍙傛暟绫诲瀷',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'select',
- formatter: this.getParam,
- optList: () => {
- return this.typeOptions
- }
+ prop: 'paramType',
+ formslot: true,
+ rules: [{
+ required: true,
+ message: "璇烽�夋嫨鍙傛暟绫诲瀷",
+ trigger: "change"
+ }]
},
{
- minWidth: '120',
- prop: 'parameterFormat',
label: '鍙傛暟鏍煎紡',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'text'
- },
- {
- minWidth: '120',
- prop: 'unit',
+ prop: 'paramFormat',
+ formslot: true,
+ labelslot: true
+ }, {
label: '鍗曚綅',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'text'
+ prop: 'unit',
+ rules: [{
+ required: true,
+ message: "鍗曚綅涓嶈兘涓虹┖",
+ trigger: "blur"
+ }]
},
- {
- minWidth: '200',
- prop: 'createUser',
- label: '鍒涘缓浜�',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'text'
- },
- {
- minWidth: '140',
- prop: 'updateUser',
- label: '鏇存柊浜�',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'text'
- },
- {
- minWidth: '120',
- prop: 'createTime',
- label: '鍒涘缓鏃ユ湡',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'datetimerange'
- },
- {
- minWidth: '200',
- prop: 'updateTime',
- label: '鏇存柊鏃ユ湡',
- sort: true,
- isTrue: true,
- isSearch: true,
- searchInfoType: 'datetimerange'
- }
- ],
- toolbar: [
- {
- text: '鏂板',
- type: 'primary',
- fun: this.addOrUpdateHandle
- }
- ],
- operator: [
- {
- text: '鍒犻櫎',
- icon: 'el-icon-delete',
- type: 'text',
- size: 'small',
- fun: this.deleteHandle
- }
- ],
- operatorConfig: {
- fixed: 'right',
- label: '鎿嶄綔',
- width: 100,
- minWidth: 100
- }
+ ]
},
+ spanArr: [{
+ prop: 'code',
+ span: []
+ }, {
+ prop: 'paramItem',
+ span: []
+ }, {
+ prop: 'paramItemTwo',
+ span: []
+ }],
addOrUpdateVisible: false
}
},
components: {
- ttable,
TableForm
},
computed: {
...mapGetters(['permissions'])
},
created() {
- this.getDictOptions()
- this.getParamType()
this.getData()
+ this.getParamType()
},
+ beforeUpdate() {
+ console.log("updated");
+ this.rowSort()
+ this.rowCalc()
+ this.loading = false
+ },
+ watch: {},
methods: {
+ //涓嬭浇妯℃澘
+ downloadTemplate() {
+ uploadTemplate('param').then((response) => {
+ const blob = new Blob([response.data], {
+ type: 'application/force-download'
+ })
+ const filename = decodeURI('鍙傛暟妯℃澘.xlsx')
+ // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
+ const elink = document.createElement('a')
+ elink.download = filename
+ elink.style.display = 'none'
+ elink.href = URL.createObjectURL(blob)
+ document.body.appendChild(elink)
+ elink.click()
+ URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
+ document.body.removeChild(elink)
+ })
+ },
+ // 鏂囦欢涓婁紶
+ handleUpload(file, fileList) {
+ const maxSize = 10 * 1024 * 1024 * 1024;//10MB
+ const xlsType = "application/vnd.ms-excel";
+ const xlsxType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+ if (file.raw.type != xlsType && file.raw.type != xlsxType) {
+ this.$message.warning("瀵煎叆鏂囦欢鏍煎紡涓嶇锛�");
+ fileList.pop()
+ return;
+ }
+ if (Number.parseInt(file.size) > maxSize) {
+ this.$message.warning("瀵煎叆鏂囦欢杩囧ぇ锛�");
+ fileList.pop()
+ return;
+ }
+ if (fileList.length > 1) {
+ this.$message.warning("鍙兘瀵煎叆鍗曚釜鏂囦欢!")
+ fileList.pop()
+ }
+ this.fileList = fileList;
+ // this.importFile = file;
+ },
+ showImportDialog() {
+ this.importDialog = true
+ },
+ //纭畾瀵煎叆
+ confirmImport() {
+ console.log(this.fileList)
+ const fileData = new FormData();
+ fileData.append('file', this.fileList[0].raw);
+ uploadParam(fileData).then((res) => {
+ this.$message.success("瀵煎叆鍙傛暟鎴愬姛!")
+ this.fileList = []
+ this.importDialog = false
+ this.getData()
+ this.getParamType()
+ }).catch()
+ },
+ // 淇敼鍙傛暟绫诲瀷
+ changeType(row) {
+ if (row.paramType === '1') {
+ row.paramFormat = '#.0000'
+ } else if (row.paramType === '2') {
+ this.getDictOptions()
+ } else {
+ row.paramFormat = ''
+ }
+ },
// 鑾峰彇鎵�鏈夊瓧鍏�
getDictOptions() {
- fetchList(
+ fetchDictList(
Object.assign({
current: 1,
- size: 200
+ size: 9999
})
).then((response) => {
if (response.data.code === 0) {
@@ -298,87 +263,98 @@
}
})
},
- changeType(row) {
- if(row.type==='涓嬫媺閫夐」'){
- row.isSelect=true
- }else{
- row.isSelect=false
- }
+ showEdit(row, index) {
+ this.option.column.forEach(item => {
+ if (row.paramItemThree == "" && item.prop == 'paramItemThree') {
+ item.display = false
+ }else if(row.paramItemThree != "" && item.prop == 'paramItemThree'){
+ item.display = true
+ }
+ if (row.paramItemTwo == "" && item.prop == 'paramItemTwo') {
+ item.display = false
+ }else if(row.paramItemTwo != "" && item.prop == 'paramItemTwo'){
+ item.display = true
+ }
+ })
+ console.log(row);
+ // let type=this.typeOptions.filter(t=>{
+ // return t.label==row.paramType
+ // })[0]
+ // row.paramType=type.value
+ this.$refs.crud.rowEdit(row, index)
},
- bianji(row) {
- if (!row.bianJi) {
- row.bianJi = true
- row.bianJiBtn = '淇濆瓨'
+ showDel(row, index) {
+ this.$refs.crud.rowDel(row, index)
+ },
+ updateParam(row, index, done, loading) {
+ // console.log(row);
+ // this.formDisabled = true
+ let data = {
+ dict: '',
+ id: '',
+ parameterFormat: '',
+ parameterItem: '',
+ type: row.paramType,
+ unit: row.unit,
+ }
+ row.paramType == '2' ? data.dict = row.paramFormat : data.parameterFormat = row.paramFormat
+ if (row.threeId!="null") {
+ data.id = row.threeId
+ data.parameterItem = row.paramItemThree
} else {
- row.bianJi = false
- row.isSelect=false
- row.bianJiBtn = '缂栬緫'
+ if (row.twoId!="null") {
+ data.id = row.twoId
+ data.parameterItem = row.paramItemTwo
+ } else {
+ data.id = row.oneId
+ data.parameterItem = row.paramItem
+ }
}
- },
- isExpandAllClick() {
- // console.log(1111);
- this.isExpandAll = !this.isExpandAll;
- this.$nextTick(() => {
- this.refreshTable = true;
- });
- // console.log(this.isExpandAll);
- },
- handlesCurrentChange() { },
- sizeChangeHandle() { },
- onSearch() { },
- // 鑾峰彇鏁版嵁鍒楄〃
- getData() {
- let param = {
- parentId: 0,
- code: this.table.code,
- size: this.table.pageSize,
- current: this.table.currentPage,
- parameterItem: this.table.param
+ if(data.type=='鏂囨湰鏍煎紡'){
+ let type=this.typeOptions.filter(t=>{
+ return t.label==row.paramType
+ })[0]
+ data.type=type.value
}
- fetchList(param).then((res) => {
- console.log(res.data);
- this.table.total = res.data.data.total
- // this.table.data = res.data.data.records
- this.$nextTick(() => {
- let datas = JSON.parse(JSON.stringify(res.data.data.records))
- datas.forEach(l => {
- l.bianJi = false
- l.isSelect=false
- if (l.children.length < 1) {
- l.isBianji = true
- l.bianJiBtn = '缂栬緫'
- } else {
- l.isBianji = false
- l.children.forEach(c => {
- c.isSelect=false
- c.bianji = false
- if (c.children.length < 1) {
- c.isBianji = true
- c.bianJiBtn = '缂栬緫'
- } else {
- l.isBianji = false
- c.children.forEach(cc => {
- cc.isSelect=false
- cc.bianJi = false
- cc.isBianji = true
- cc.bianJiBtn = '缂栬緫'
- })
- }
- })
- }
- })
- console.log("test==>", datas);
- this.table.data = datas
- console.log(this.table.data);
- });
+ // console.log(data);
+ // return
+ putObj(data).then(res => {
+ if (res.data.data.code == 0) {
+ this.$message.success("鏇存柊鎴愬姛")
+ } else {
+ this.$message.error(res.data.data.msg)
+ }
+ this.getData()
+ done(row)
+ }).catch(error => {
+ console.log(error)
})
},
- // 鏂板 / 淇敼
- addOrUpdateHandle(row) {
- this.addOrUpdateVisible = true
- this.$nextTick(() => {
- this.$refs.addOrUpdate.init(row == null ? null : row.id)
- })
+ delParam(row) {
+ let id;
+ if (row.threeId) {
+ id = row.threeId
+ } else {
+ if (row.twoId) {
+ id = row.twoId
+ } else {
+ id = row.oneId
+ }
+ }
+ this.$confirm('鏄惁纭鍒犻櫎缂栧彿涓恒��' + row.code + '銆戠殑鏁版嵁?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ delObj(id).then(res => {
+ if (res.data.code == 0) {
+ this.$message.success("鍒犻櫎鎴愬姛")
+ } else {
+ this.$message.error("鍒犻櫎澶辫触")
+ }
+ this.getData()
+ })
+ }).catch(() => { });
},
// 鑾峰彇宸ュ簭鍙傛暟绫诲瀷
getParamType() {
@@ -389,40 +365,204 @@
}
})
},
- // 閫変腑浠撳簱琛�
- handleSelectionChange(val) {
- this.multipleSelection = val
+ onSearch() {
+ this.getData()
},
- // 琛ㄦ牸瀛楁鏍煎紡鍖�
- getParam(row, column, cellValue) {
- for (let i = 0, len = this.typeOptions.length; i < len; i++) {
- if (cellValue == this.typeOptions[i].value) {
- return this.typeOptions[i].label
+ // 鏂板 / 淇敼
+ addOrUpdateHandle(row) {
+ console.log("1111",row);
+ this.addOrUpdateVisible = true
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(row == null ? null : row.id)
+ })
+ },
+ // 鑾峰彇鏁版嵁鍒楄〃
+ getData() {
+ this.loading = true
+ let param = {
+ code: this.searchForm.code,
+ size: 20,
+ current: 1,
+ parameterItem: this.searchForm.param
+ }
+ fetchList(param).then((res) => {
+ this.tableData = res.data.data.records
+ this.page.total = res.data.data.total
+ this.page.currentPage = res.data.data.records.pages
+ })
+ },
+ //鍔ㄦ�佸悎骞舵柟娉�
+ rowCalc() {
+ this.spanArr.forEach((ele, index) => {
+ let parent
+ if (index !== 0) parent = this.spanArr[ele.parent || index - 1].span
+ ele.span = this.rowSpan(ele.prop, parent)
+ })
+ },
+ rowSort(list) {
+ let propList = this.spanArr.map(ele => ele.prop)
+ this.spanArr.forEach((ele, index) => {
+ let key = ele.prop
+ this.tableData = this.tableData.sort((a, b) => {
+ let flag = true;
+ for (let i = 0; i < index; i++) {
+ let prop = this.spanArr[i].prop
+ flag = flag && a[prop] == b[prop]
+ }
+ if (flag) {
+ if (a[key] < b[key]) { return 1; }
+ else if (a[key] > b[key]) { return -1; }
+ return 0;
+ }
+ return 0;
+ })
+ })
+ },
+ rowSpan(key, parent) {
+ let list = [];
+ let position = 0;
+ this.tableData.forEach((item, index) => {
+ if (index === 0) {
+ list.push(1)
+ let position = 0;
+ } else {
+ if (this.tableData[index][key] === this.tableData[index - 1][key]) {
+ if (parent && parent[index] !== 0) {
+ list.push(1)
+ position = index
+ } else {
+ list[position] += 1;
+ list.push(0)
+ }
+ } else {
+ list.push(1)
+ position = index
+ }
+ }
+ })
+ return list
+ },
+ spanMethod({ row, column, rowIndex, columnIndex }) {
+ for (let i = 0; i < this.spanArr.length; i++) {
+ const ele = this.spanArr[i]
+ if (column.property == ele.prop) {
+ const _row = ele.span[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
}
}
- },
- // 鍒犻櫎
- deleteHandle(row) {
- this.$confirm('鏄惁纭鍒犻櫎缂栧彿涓�' + row.code, '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- })
- .then(function () {
- return delObj(row.id)
- })
- .then((data) => {
- this.$message.success('鍒犻櫎鎴愬姛')
- this.getData()
- })
}
}
}
</script>
-<style scoped>
-table,
-tr,
-td {
- text-align: center;
+
+<style>
+.grid-header {
+ display: none;
}
-</style>
+
+.param-basic {
+ margin: 0 10px;
+ border-radius: 0px;
+ background-color: #fff;
+ height: 100px;
+ display: flex;
+ flex-wrap: wrap;
+ padding: 10px 20px;
+ border: 1px solid #ddd;
+ box-sizing: border-box;
+}
+
+.btn-group .el-button,
+.btn-custom .el-button {
+ border-radius: 0;
+ padding: 9px 30px;
+}
+
+.btn-group .el-dropdown .el-button {
+ border-radius: 0;
+ padding: 9px 20px;
+}
+
+/*鑷畾涔塪isabled鐘舵�佷笅checkbox鐨勬牱寮�*/
+.completeproductstructure-checkout .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+ background-color: #006eff;
+ border-color: #006eff;
+}
+
+.completeproductstructure-checkout .el-checkbox__input.is-disabled.is-checked+span.el-checkbox__label {
+ color: #006eff;
+ border-color: #006eff;
+}
+
+.completeproductstructure-checkout .el-checkbox__input.is-disabled .el-checkbox__inner {
+ background-color: #ffffff;
+ cursor: pointer;
+}
+
+.completeproductstructure-checkout .el-checkbox__input.is-disabled+span.el-checkbox__label {
+ color: #606266;
+ cursor: pointer;
+}
+
+.completeproductstructure-checkout .el-checkbox__inner::after {
+ border: 1px solid #fff !important;
+ border-left: 0 !important;
+ border-top: 0 !important;
+ cursor: pointer !important;
+}
+
+.structure-detail-table th.gutter {
+ display: table-cell !important;
+ width: 10px !important;
+}
+
+.structure-detail-table colgroup.gutter {
+ display: table-cell !important;
+ width: 10px !important;
+}
+
+.final-product-checkout .el-card__header {
+ padding: 0px 20px;
+ border-bottom: 0px;
+}
+
+.final-product-checkout .el-card__body {
+ padding: 0px 20px 20px;
+}
+
+.orimaterial-quantity .el-card__header {
+ padding: 0px 20px;
+ border-bottom: 0px;
+}
+
+.orimaterial-quantity .el-card__body {
+ padding: 0px 20px 20px;
+}
+
+.GooFlow .ico .ico_start:before {
+ color: red;
+}
+
+.highlight-tab-class {
+ color: #006eff;
+ background: #e4e7ed;
+ border-top: 1px solid #006eff;
+}
+
+.unhighlight-tab-class {
+ border: 1px solid #e4e7ed;
+ border-bottom: none;
+}
+
+.el-upload-dragger {
+ width: 300px;
+}
+
+.upload-demo {
+ width: 300px;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3