<template>
|
<div>
|
<div class="body" :style="{height:mainHeight+'px'}">
|
<div style="display: flex">
|
<!-- background:rgba(248,248,250,1);-->
|
<div style="width: 300px;margin: 10px 10px 0 0;background: #fff">
|
|
<div style="margin: 20px 10px 0 10px;display: flex;justify-content: space-between;">
|
<div style="display: flex;">
|
<div
|
style="width: 5px;height: 100%;border-radius: 5px;"
|
:style="{background:$store.state.settings.theme}"
|
/>
|
<div style="margin-left: 8px;">计量单位</div>
|
</div>
|
|
<!-- <div style="margin-right:10px">-->
|
<!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="新增" placement="top">-->
|
<!-- <i class="el-icon-plus" style="cursor: pointer;color: #999" @click="treeAddClick('add')" />-->
|
<!-- </el-tooltip>-->
|
<!-- </div>-->
|
</div>
|
|
<el-tree
|
ref="treeLeftRef"
|
key="treeLeftKey"
|
style="padding: 10px;overflow: auto;"
|
:style="{height:(tableHeight+150)+'px'}"
|
:data="treeLeft"
|
node-key="code"
|
highlight-current
|
:props="defaultPropsLeft"
|
:default-expand-all="true"
|
:expand-on-click-node="false"
|
@node-click="nodeClick"
|
>
|
|
<!-- <span slot-scope="{ node, data }" class="custom-tree-node">-->
|
<!-- <span v-if="!data.isEdit">{{ data.code +' '+ data.name }}</span>-->
|
<!-- <span v-if="!data.isEdit">-->
|
<!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="编辑" placement="top">-->
|
<!-- <i-->
|
<!-- v-if="data.code!=='-1'"-->
|
<!-- class="el-icon-edit"-->
|
<!-- style="margin-right:10px;color: #999"-->
|
<!-- @click.stop="treeEditClick(node,data,'edit')"-->
|
<!-- />-->
|
<!-- </el-tooltip>-->
|
<!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">-->
|
<!-- <i-->
|
<!-- v-if="data.code!=='-1'"-->
|
<!-- class="el-icon-delete"-->
|
<!-- style="margin-right: 4px;color: #999"-->
|
<!-- @click.stop="treeDeleteClick(node,data)"-->
|
<!-- />-->
|
<!-- </el-tooltip>-->
|
<!-- </span>-->
|
<!-- </span>-->
|
|
</el-tree>
|
|
</div>
|
|
<div style="width: calc(100% - 300px)">
|
<div class="bodyTopButtonGroup" style="justify-content: end">
|
<!-- <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">新增</el-button>-->
|
<el-button v-waves icon="el-icon-refresh" @click="getSaveSearchUnit">同步计量单位</el-button>
|
</div>
|
|
<div class="elTableDiv">
|
<el-table
|
ref="tableDataRef"
|
class="tableFixed"
|
:data="tableData"
|
:height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
|
border
|
row-class-name="custom-row"
|
:style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
|
highlight-current-row
|
:header-cell-style="this.$headerCellStyle"
|
:cell-style="this.$cellStyle"
|
@sort-change="sortChange"
|
>
|
<el-table-column
|
prop="rowNum"
|
width="50"
|
fixed
|
label="序号"
|
/>
|
<el-table-column
|
prop="code"
|
label="计量单位编码"
|
sortable="custom"
|
/>
|
<el-table-column
|
prop="name"
|
label="计量单位名称"
|
sortable="custom"
|
/>
|
<!-- <el-table-column-->
|
<!-- prop="isMainUnit"-->
|
<!-- label="主计量"-->
|
<!-- sortable="custom"-->
|
<!-- >-->
|
<!-- <template slot-scope="{row}">-->
|
<!-- {{ row.isMainUnit === '1' ? '是' : '否' }}-->
|
<!-- </template>-->
|
<!-- </el-table-column>-->
|
<!-- <el-table-column-->
|
<!-- prop="changeRate"-->
|
<!-- label="换算率"-->
|
<!-- sortable="custom"-->
|
<!-- />-->
|
|
<!-- <el-table-column-->
|
<!-- prop="data_sources"-->
|
<!-- label="数据来源"-->
|
<!-- sortable="custom"-->
|
<!-- />-->
|
<el-table-column
|
prop="lm_user"
|
label="创建人员"
|
sortable="custom"
|
/>
|
<el-table-column
|
prop="lm_date"
|
label="创建时间"
|
sortable="custom"
|
/>
|
<!-- <el-table-column-->
|
<!-- label="操作"-->
|
<!-- width="120"-->
|
<!-- fixed="right"-->
|
<!-- >-->
|
<!-- <template slot-scope="{row}">-->
|
<!-- <div class="operationClass">-->
|
<!-- <el-tooltip class="item" effect="dark" content="编辑" placement="top">-->
|
<!-- <i-->
|
<!-- class="el-icon-edit-outline"-->
|
<!-- :style="{color:$store.state.settings.theme}"-->
|
<!-- @click="edit('edit',row)"-->
|
<!-- />-->
|
<!-- </el-tooltip>-->
|
|
<!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">-->
|
<!-- <i-->
|
<!-- class="el-icon-delete"-->
|
<!-- :style="{color:$store.state.settings.theme}"-->
|
<!-- @click="del(row)"-->
|
<!-- />-->
|
<!-- </el-tooltip>-->
|
<!-- </div>-->
|
<!-- </template>-->
|
<!-- </el-table-column>-->
|
</el-table>
|
</div>
|
<!--分页-->
|
<pagination
|
:total="total"
|
:page.sync="form.page"
|
:limit.sync="form.rows"
|
align="right"
|
layout="total,prev, pager, next,sizes,jumper"
|
popper-class="select_bottom"
|
@pagination="getTUnitData"
|
/>
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 单位明细-->
|
<el-dialog
|
v-el-drag-dialog
|
:title="operation==='add'?'新增':'编辑'"
|
:visible.sync="dialogVisible"
|
width="800px"
|
:close-on-click-modal="false"
|
top="15vh"
|
@closed="handleClose"
|
@close="handleClose"
|
>
|
<!-- <el-form-->
|
<!-- ref="dialogForm"-->
|
<!-- inline-->
|
<!-- :rules="dialogFormRules"-->
|
<!-- :model="dialogForm"-->
|
<!-- label-width="120px"-->
|
<!-- style="display: flex;justify-content: space-between;align-content: flex-end"-->
|
<!-- >-->
|
|
<!-- <el-form-item :label="dialogForm.tunittype==='S'? '计量单位名称':'计量单位组名称'" prop="unitname">-->
|
<!-- <el-input v-model="dialogForm.unitname" style="width: 200px" />-->
|
<!-- </el-form-item>-->
|
|
<!-- <el-form-item v-if="dialogForm.tunittype==='M'">-->
|
<!-- <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="tableDataDialogAdd">新增行-->
|
<!-- </el-button>-->
|
<!-- </el-form-item>-->
|
|
<!-- </el-form>-->
|
|
<el-button v-waves style="margin-bottom: 10px" type="primary" icon="el-icon-circle-plus-outline" @click="tableDataDialogAdd">新增行
|
</el-button>
|
|
<el-table
|
ref="tableDataDialogRef"
|
class="tableFixed"
|
:data="tableDataDialog"
|
row-class-name="custom-row"
|
height="400"
|
border
|
:style="{width: 100+'%',height:'400px',}"
|
highlight-current-row
|
:header-cell-style="this.$headerCellStyle"
|
:cell-style="this.$cellStyle"
|
>
|
|
<el-table-column
|
type="index"
|
width="50"
|
fixed
|
label="序号"
|
/>
|
<el-table-column
|
prop="unitname"
|
label="计量单位名称"
|
>
|
<template slot-scope="{row}">
|
<el-input
|
v-if="row.isVisible===1"
|
v-model="row.unitname"
|
placeholder="请输入"
|
/>
|
<div v-else> {{ row.unitname }}</div>
|
</template>
|
|
</el-table-column>
|
<el-table-column
|
|
label="主计量"
|
prop="checkboxSelected"
|
>
|
<template slot-scope="{row}">
|
|
<el-select
|
v-if="row.isVisible===1"
|
v-model="row.checkboxSelected"
|
:popper-append-to-body="false"
|
:disabled="row.checkboxSelected==='1'"
|
placeholder="请选择"
|
filterable
|
@change="val=>checkboxSelectedChange(val,row)"
|
>
|
<el-option
|
v-for="item in checkboxSelectedArr"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"
|
/>
|
</el-select>
|
<div v-else> {{ row.checkboxSelected === '1' ? '是' : '否' }}</div>
|
</template>
|
</el-table-column>
|
|
<el-table-column
|
prop="changeRate"
|
label="换算率"
|
>
|
<template slot-scope="{row}">
|
<el-input
|
v-if="row.isVisible===1"
|
v-model="row.changeRate"
|
:disabled="row.checkboxSelected==='1'"
|
placeholder="请输入"
|
oninput="value=value.replace(/[^0-9.]/g,'')"
|
/>
|
<div v-else> {{ row.changeRate }}</div>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="rateDescription"
|
label="换算说明"
|
/>
|
<el-table-column
|
label="操作"
|
width="120"
|
fixed="right"
|
>
|
<template slot-scope="{row}">
|
<div class="operationClass">
|
<el-tooltip class="item" effect="dark" content="编辑" placement="top">
|
<i
|
v-if="row.isVisible===0&&tableDataDialog.filter(i=>i.isVisible===1).length===0"
|
class="el-icon-edit-outline"
|
:style="{color:$store.state.settings.theme}"
|
@click="tableDataDialogEdit(row)"
|
/>
|
</el-tooltip>
|
<el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">
|
<i
|
v-if="row.isVisible===0&&tableDataDialog.filter(i=>i.isVisible===1).length===0"
|
class="el-icon-delete"
|
:style="{color:$store.state.settings.theme}"
|
@click="tableDataDialogDel(row)"
|
/>
|
</el-tooltip>
|
<el-tooltip class="item" effect="dark" content="保存" placement="top">
|
<i
|
v-if="row.isVisible===1"
|
class="el-icon-circle-check"
|
style="cursor:pointer;"
|
:style="{color:$store.state.settings.theme}"
|
@click="tableDataDialogSave(row)"
|
/>
|
</el-tooltip>
|
</div>
|
</template>
|
</el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
<div class="footerButton">
|
<el-button v-waves @click="dialogVisibleCancel">取 消</el-button>
|
<el-button
|
v-waves
|
type="primary"
|
:loading="$store.state.app.buttonIsDisabled"
|
:disabled="$store.state.app.buttonIsDisabled"
|
@click="dialogVisibleConfirm"
|
>确 定</el-button>
|
</div>
|
</span>
|
</el-dialog>
|
|
<!-- 单位类别新增修改-->
|
<el-dialog
|
v-el-drag-dialog
|
:title="operation==='add'?'新增':'编辑'"
|
:visible.sync="dialogClassVisible"
|
width="800px"
|
:close-on-click-modal="false"
|
top="15vh"
|
@closed="handleClassClose"
|
@close="handleClassClose"
|
>
|
<el-form ref="dialogClassForm" inline :rules="dialogClassFormRules" :model="dialogClassForm" label-width="110px">
|
<el-form-item label="单位类型编码" prop="code">
|
<el-input v-model="dialogClassForm.code" :disabled="operation!=='add'" style="width: 200px" />
|
</el-form-item>
|
<el-form-item label="单位类型名称" prop="name">
|
<el-input v-model="dialogClassForm.name" style="width: 200px" />
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<div class="footerButton">
|
<el-button v-waves @click="dialogVisibleClassCancel">取 消</el-button>
|
<el-button
|
v-waves
|
type="primary"
|
:loading="$store.state.app.buttonIsDisabled"
|
:disabled="$store.state.app.buttonIsDisabled"
|
@click="dialogVisibleClassConfirm"
|
>确 定</el-button>
|
</div>
|
</span>
|
</el-dialog>
|
|
</div>
|
</template>
|
|
<script>
|
import Pagination from '@/components/Pagination'
|
import elDragDialog from '@/directive/el-drag-dialog'
|
import waves from '@/directive/waves'
|
import { SaveSearchUnit } from '@/api/ErpSyncMes'
|
import {
|
AddUpdateTUnit,
|
AddUpdateTUnitGroup,
|
DeleteTUnit, DeleteTUnitGroup,
|
TUnitData,
|
TUnitGroup,
|
TUnitGroupProject
|
} from '@/api/ProductModel'
|
import { validateCode } from '@/utils/global'
|
|
export default {
|
name: 'Zzjg',
|
components: {
|
Pagination
|
},
|
directives: { elDragDialog, waves },
|
data() {
|
return {
|
// mouseHoverType: 'mouseout',
|
isExpandForm: false,
|
mainHeight: 0,
|
tableHeight: 0,
|
form: {
|
tunittype: '', // 单计量(S) 多计量(M)
|
tunitgroupcode: '', // 计量单位组编码
|
prop: 'isGroup', // 排序字段
|
order: 'asc', // 排序字段
|
page: 1, // 第几页
|
rows: 20 // 每页多少条
|
},
|
total: 10,
|
tableData: [],
|
dialogVisible: false,
|
dialogForm: {
|
tunittype: '', // 单计量(S) 多计量(M)
|
tunitgroupcode: '', // 计量单位组编码
|
unitcode: '',
|
unitname: '',
|
data_sources: 'MES'
|
},
|
operation: '',
|
dialogFormRules: {
|
unitname: [
|
{ required: true, message: '请输入名称', trigger: ['blur', 'change'] }
|
]
|
},
|
|
defaultPropsLeft: {
|
children: 'children',
|
label: 'name'
|
},
|
treeLeft: [],
|
|
tableDataDialog: [],
|
|
checkboxSelectedArr: [
|
{ code: '0', name: '否' },
|
{ code: '1', name: '是' }
|
],
|
|
isMainUnitHidden: true,
|
|
dialogClassVisible: false,
|
dialogClassForm: {
|
code: '', // 单位类型编码
|
name: '', // 单位名称名称
|
OperType: ''// OperType
|
},
|
dialogClassFormRules: {
|
code: [
|
{ required: true, validator: validateCode, trigger: ['blur', 'change'] }
|
],
|
name: [
|
{ required: true, message: '请输单位类型名称', trigger: ['blur', 'change'] }
|
]
|
}
|
|
}
|
},
|
created() {
|
|
},
|
mounted() {
|
window.addEventListener('resize', this.getHeight)
|
this.getHeight()
|
this.handleGetApi('')
|
},
|
methods: {
|
async handleGetApi(code) {
|
await this.getTUnitGroup(code)
|
await this.getTUnitData()
|
},
|
async getSaveSearchUnit() {
|
const res = await SaveSearchUnit()
|
if (res.code === '200') {
|
await this.handleGetApi(this.$refs.treeLeftRef.getCurrentKey())
|
this.$notify.success('计量单位同步成功!')
|
}
|
},
|
async getTUnitGroup(code) {
|
const { data: res } = await TUnitGroup()
|
|
this.treeLeft = []
|
this.treeLeft.push({ code: '', name: '全部', children: res })
|
|
this.$nextTick(() => {
|
this.$refs.treeLeftRef.setCurrentKey(code)
|
})
|
},
|
async getTUnitData() {
|
const res = await TUnitData(this.form)
|
|
this.tableData = res.data
|
this.total = res.count
|
},
|
|
async getTUnitGroupProject(unitcode) {
|
const data = {
|
unitcode, isgroup: '1'
|
}
|
const res = await TUnitGroupProject(data)
|
res.data.forEach((i, index) => {
|
i.unitname = i.name
|
i.unitcode = i.code
|
i.uuid = new Date().getTime() + index
|
i.isVisible = 0
|
// i.idunitgroup = unitcode
|
i.checkboxSelected = i.isMainUnit === '1' ? '1' : '0'
|
})
|
this.tableDataDialog = res.data
|
},
|
|
// 排序改变时
|
sortChange({ column, prop, order }) {
|
if (order === 'descending') {
|
order = 'desc'
|
} else if (order === 'ascending') {
|
order = 'asc'
|
} else {
|
order = 'desc'
|
}
|
this.form.order = order
|
this.form.prop = prop
|
this.getTUnitData()
|
},
|
async nodeClick(obj, Node, VueComponent) {
|
if (obj.code === 'S' || obj.code === 'M' || obj.code === '') {
|
this.form.tunittype = obj.code
|
this.form.tunitgroupcode = ''
|
await this.getTUnitData(obj.code)
|
this.isMainUnitHidden = true
|
this.$nextTick(() => {
|
this.$refs.tableDataRef.doLayout()
|
})
|
} else {
|
this.form.tunittype = 'M'
|
this.form.tunitgroupcode = obj.code
|
await this.getTUnitData(obj.code)
|
this.isMainUnitHidden = false
|
this.$nextTick(() => {
|
this.$refs.tableDataRef.doLayout()
|
})
|
}
|
},
|
add(operation) {
|
// if (this.$refs.treeLeftRef.getCurrentKey() === 'S' || this.$refs.treeLeftRef.getCurrentKey() === 'M') {
|
// this.dialogForm.tunittype = this.$refs.treeLeftRef.getCurrentKey()
|
// } else {
|
// return this.$message.error('请先选择树上的单计量或多计量!')
|
// }
|
this.operation = operation
|
this.dialogVisible = true
|
this.dialogForm.OperType = 'Add'
|
},
|
// 修改按钮
|
async edit(operation, row) {
|
this.operation = operation
|
this.dialogVisible = true
|
this.dialogForm.OperType = 'Update'
|
|
this.$nextTick(() => {
|
if (this.$refs.treeLeftRef.getCurrentKey() === 'S' || this.$refs.treeLeftRef.getCurrentKey() === 'M' || this.$refs.treeLeftRef.getCurrentKey() === '') {
|
this.dialogForm.tunittype = row.isGroup === '0' ? 'S' : 'M'
|
this.dialogForm.tunitgroupcode = row.isGroup === '0' ? row.code : row.idunitgroup
|
this.dialogForm.unitcode = row.code
|
this.dialogForm.unitname = row.name
|
this.dialogForm.data_sources = row.data_sources
|
} else {
|
this.dialogForm.tunittype = 'M'
|
this.dialogForm.tunitgroupcode = row.idunitgroup
|
this.dialogForm.unitcode = row.idunitgroup
|
this.dialogForm.unitname = this.treeLeft[0].children[1].children.find(i => i.code === this.$refs.treeLeftRef.getCurrentKey()).name
|
this.dialogForm.data_sources = row.data_sources
|
}
|
|
if (this.dialogForm.tunittype === 'M') {
|
this.getTUnitGroupProject(row.idunitgroup)
|
}
|
})
|
},
|
|
// 删除按钮
|
async del(row) {
|
this.$confirm('是否确认删除?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
if (this.$refs.treeLeftRef.getCurrentKey() === 'S' || this.$refs.treeLeftRef.getCurrentKey() === 'M' || this.$refs.treeLeftRef.getCurrentKey() === '') {
|
// this.dialogForm.tunittype = this.$refs.treeLeftRef.getCurrentKey()
|
} else {
|
if (row.isMainUnit === '1' || this.tableData.length === 2) {
|
return this.$message.info('计量单位组下,必须有一个主计量和至少一个辅计量!')
|
}
|
}
|
|
const data = {
|
data_sources: row.data_sources,
|
tunittype: row.isGroup === '0' ? 'S' : 'M',
|
|
tunitgroupcode: row.isGroup === '0' ? '' : row.idunitgroup,
|
tunitcode: row.isGroup === '0' ? row.code : (this.$refs.treeLeftRef.getCurrentKey() === 'M' ? '' : row.code)
|
}
|
DeleteTUnit(data).then(res => {
|
if (res.code === '200') {
|
this.$notify.success('删除成功!')
|
if (this.form.page > 1 && this.tableData.length === 1) {
|
this.form.page--
|
}
|
|
this.handleGetApi(this.$refs.treeLeftRef.getCurrentKey())
|
}
|
})
|
}).catch(() => {
|
this.$notify.info('已取消删除')
|
})
|
},
|
// 对话框关闭事件
|
handleClose() {
|
this.dialogForm.tunittype = ''
|
this.dialogForm.tunitgroupcode = ''
|
this.dialogForm.unitcode = ''
|
this.dialogForm.unitname = ''
|
this.dialogForm.data_sources = 'MES'
|
this.tableDataDialog = []
|
this.$refs.dialogForm.clearValidate()
|
},
|
// 对话框取消
|
dialogVisibleCancel() {
|
this.dialogVisible = false
|
},
|
// 对话框确认
|
dialogVisibleConfirm() {
|
this.$refs.dialogForm.validate(valid => {
|
if (valid) {
|
if (this.tableDataDialog.find(i => i.isVisible === 1)) {
|
return this.$message.info('请先保存当前行!')
|
}
|
|
let data
|
if (this.dialogForm.tunittype === 'S') { // 单计量新增,修改
|
data = [{
|
unitcode: this.dialogForm.unitcode,
|
unitname: this.dialogForm.unitname,
|
children: [
|
{
|
'unitcode': this.dialogForm.unitcode,
|
'unitname': this.dialogForm.unitname,
|
'isMainUnit': '0',
|
'changeRate': '1',
|
'isSingleUnit': '1',
|
'disabled': '0',
|
'isGroup': '0',
|
'rateDescription': '',
|
'idunitgroup': ''
|
}
|
]
|
}]
|
}
|
if (this.dialogForm.tunittype === 'M') { // 多计量新增,修改
|
if (this.tableDataDialog.length === 0) {
|
return this.$message.info('计量单位组中至少包含一个计量单位!')
|
}
|
if (this.tableDataDialog.length === 1) {
|
return this.$message.info('计量单位组下,必须有一个主计量和至少一个辅计量!')
|
}
|
|
this.tableDataDialog.forEach((i, index) => {
|
i.unitcode = i.unitcode ? i.unitcode : 'U' + index.toString()
|
i.isMainUnit = i.checkboxSelected === '1' ? '1' : '0'
|
i.isSingleUnit = '0'
|
i.disabled = '0'
|
i.isGroup = '1'
|
i.idunitgroup = this.dialogForm.tunitgroupcode
|
})
|
data = [{
|
unitcode: this.dialogForm.unitcode,
|
unitname: this.dialogForm.unitname,
|
children: this.tableDataDialog
|
}]
|
}
|
console.log(data)
|
this.$store.state.app.buttonIsDisabled = true
|
AddUpdateTUnit(data, this.dialogForm.data_sources, this.dialogForm.tunittype, this.dialogForm.tunitgroupcode, this.dialogForm.OperType).then(res => {
|
if (res.code === '200') {
|
this.$notify.success(this.operation === 'add' ? '添加成功!' : '修改成功!')
|
this.dialogVisible = false
|
this.$store.state.app.buttonIsDisabled = false
|
this.handleGetApi(this.$refs.treeLeftRef.getCurrentKey())
|
} else {
|
this.$store.state.app.buttonIsDisabled = false
|
this.$notify.error(this.operation === 'add' ? '添加失败!' : '修改失败!')
|
}
|
})
|
}
|
})
|
},
|
|
tableDataDialogAdd() {
|
if (this.tableDataDialog.find(i => i.isVisible === 1)) {
|
return this.$message.info('请先保存上一条数据!')
|
}
|
|
this.tableDataDialog.push({
|
unitname: '',
|
changeRate: 1,
|
uuid: new Date().getTime(),
|
checkboxSelected: this.tableDataDialog.length === 0 ? '1' : '0',
|
isVisible: 1,
|
data_sources: 'MES'
|
})
|
console.log(this.tableDataDialog)
|
},
|
tableDataDialogEdit(row) {
|
row.isVisible = 1
|
},
|
tableDataDialogDel(row) {
|
if (row.checkboxSelected === '1') {
|
return this.$message.info('主计量单位不能删除!')
|
}
|
this.tableDataDialog = this.tableDataDialog.filter(i => i.uuid !== row.uuid)
|
},
|
tableDataDialogSave(row) {
|
if (!row.unitname) {
|
return this.$message.info('计量单位名称不能为空!')
|
}
|
if (!row.changeRate) {
|
return this.$message.info('换算率不能为空!')
|
}
|
if (this.tableDataDialog.filter(i => i.unitname === row.unitname).length > 1) {
|
return this.$message.info('多计量组内计量单位名称不能重复!')
|
}
|
// console.log(row, 234)
|
row.isVisible = 0
|
if (this.tableDataDialog.length > 1) {
|
const unitname = this.tableDataDialog.find(i => i.checkboxSelected === '1').unitname
|
this.tableDataDialog.forEach(i => {
|
if (i.checkboxSelected === '0') {
|
i.rateDescription = '1' + i.unitname + '=' + i.changeRate + unitname
|
} else {
|
i.rateDescription = ''
|
}
|
})
|
}
|
},
|
checkboxSelectedChange(val, row) {
|
row.changeRate = 1
|
this.tableDataDialog.forEach(item => {
|
item.checkboxSelected = item.uuid === row.uuid ? '1' : '0'
|
})
|
},
|
// 获取页面高度
|
getHeight() {
|
this.$nextTick(() => {
|
this.mainHeight = window.innerHeight - 85
|
this.tableHeight = this.mainHeight - 220
|
this.$refs.tableDataRef.doLayout()
|
})
|
},
|
|
treeEditClick(node, data, operation) {
|
this.dialogClassForm.code = data.code
|
this.dialogClassForm.name = data.name
|
this.dialogClassForm.OperType = 'Update'
|
this.operation = operation
|
this.dialogClassVisible = true
|
},
|
treeDeleteClick(node, data) {
|
this.$confirm('是否确认删除?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
DeleteTUnitGroup({ tunitgroupcode: data.code }).then(res => {
|
if (res.code === '200') {
|
this.$notify.success('删除成功!')
|
this.handleGetApi('')
|
}
|
})
|
}).catch(() => {
|
this.$notify.info('已取消删除')
|
})
|
},
|
treeAddClick(operation) {
|
this.operation = operation
|
this.dialogClassVisible = true
|
this.dialogClassForm.OperType = 'Add'
|
},
|
|
handleClassClose() {
|
this.dialogClassForm.code = ''
|
this.dialogClassForm.name = ''
|
this.$refs.dialogClassForm.clearValidate()
|
},
|
dialogVisibleClassCancel() {
|
this.dialogClassVisible = false
|
},
|
dialogVisibleClassConfirm() {
|
this.$refs.dialogClassForm.validate(valid => {
|
if (valid) {
|
const data = [{
|
code: this.dialogClassForm.code,
|
name: this.dialogClassForm.name,
|
group: '',
|
description: ''
|
}]
|
AddUpdateTUnitGroup(data, this.dialogClassForm.OperType).then(res => {
|
if (res.code === '200') {
|
this.$notify.success(this.operation === 'add' ? '添加成功!' : '修改成功!')
|
this.dialogClassVisible = false
|
this.$store.state.app.buttonIsDisabled = false
|
this.handleGetApi('')
|
} else {
|
this.$store.state.app.buttonIsDisabled = false
|
this.$notify.error(this.operation === 'add' ? '添加失败!' : '修改失败!')
|
}
|
})
|
}
|
})
|
}
|
|
}
|
}
|
</script>
|
<style scoped lang="scss">
|
.custom-tree-node {
|
flex: 1;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
font-size: 14px;
|
padding-right: 8px;
|
}
|
|
//::v-deep .el-checkbox__label {
|
// width: 55px;
|
//}
|
//
|
.el-icon-plus:hover, .el-icon-edit:hover, .el-icon-delete:hover {
|
color: #000 !important;
|
}
|
</style>
|