Commit 5b045162 authored by xiangjiaojunxp's avatar xiangjiaojunxp

msg

parent 04294dc5
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="上级规则" prop="roleId">
<el-select v-model="queryParams.roleId" filterable clearable placeholder="请选择关联项">
<el-option v-for="option in options1" :key="option.roleName" :label="option.roleName"
:value="option.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则名称" prop="detailName">
<el-input v-model="queryParams.detailName" placeholder="请输入规则名称" clearable size="small"
@keyup.enter.native="handleQuery" maxlength="15" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态">
<el-option label="启用" :value="0"></el-option>
<el-option label="禁用" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="运算规则" prop="convertStatus">
<el-select v-model="queryParams.convertStatus" clearable filterable placeholder="请运算规则">
<el-option v-for="option in options2" :key="option.operationName" :label="option.operationName"
:value="option.id"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:suppliesroledetail:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:suppliesroledetail:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:suppliesroledetail:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="suppliesroledetailList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" width="80" align="center" label="序号" :index="indexMethod" />
<el-table-column label="上级规则" align="center" prop="roleName" />
<el-table-column label="规则名称" align="center" prop="detailName" />
<el-table-column label="规则内容" align="center" prop="detailContent" />
<el-table-column label="运算规则" align="center">
<template slot-scope="scope">
<div>
<template v-if="scope.row.convertStatus === 0">
</template>
<template v-if="scope.row.convertStatus === 1">
物料转换
</template>
<template v-if="scope.row.convertStatus === 2">
加法运算
</template>
<template v-if="scope.row.convertStatus === 3">
减法运算
</template>
<template v-if="scope.row.convertStatus === 4">
乘法运算
</template>
<template v-if="scope.row.convertStatus === 5">
除法运算
</template>
<template v-if="scope.row.convertStatus === 6">
清洗规则
</template>
</div>
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<div>
<template v-if="scope.row.status === 0">
<span style="color: #0cc030;">已发布</span>
</template>
<template v-else-if="scope.row.status === 1">
<span style="color: #0077ff;">未发布</span>
</template>
<template v-else-if="scope.row.status === 2">
<span style="color: #ff0000;">未发布</span>
</template>
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:suppliesroledetail:edit']"
:style="{ display: scope.row.status === 1 ? '' : 'none' }">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:suppliesroledetail:remove']"
:style="{ display: scope.row.status === 1 ? '' : 'none' }">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改规则详情对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1300px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="上级规则" prop="roleId">
<el-select v-model="form.roleId" filterable placeholder="请选择关联项">
<el-option v-for="option in options3" :key="option.roleName" :label="option.roleName"
:value="option.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则名称" prop="detailName">
<el-input v-model="form.detailName" placeholder="请输入规则名称" maxlength="36" show-word-limit />
</el-form-item>
<el-form-item label="运算方法" prop="convertStatus">
<el-select v-model="form.convertStatus" filterable placeholder="请选择运算方法" @change="handleRadioChange">
<el-option v-for="option in options2" :key="option.operationName" :label="option.operationName"
:value="option.id"></el-option>
</el-select>
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item label="转换类型" prop="detailYS">
<el-radio-group v-model="form.detailYS">
<el-radio label="1">单元格转换</el-radio>
<el-radio label="2">行转换</el-radio>
<el-radio label="3">列转换</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item v-if="form.detailYS !== null">
<el-button type="primary" :disabled="isDisable" @click="addInputs">添加规则</el-button>
</el-form-item>
</el-col>
</el-row>
<div v-for="index in instea" :key='index'>
<el-form-item label="表头所在行" prop="CleanIng" class="form-item-inline" v-if="options2id === 6">
<el-input-number size="medium" v-model="CleanIng.HeaderRow" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="模板表行坐标" prop="detailMH" class="form-item-inline" v-else>
<el-input-number size="medium" v-model="detailMH[index - 1]" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="物料名称所在列" prop="CleanIng" class="form-item-inline" v-if="options2id === 6">
<el-input-number size="medium" v-model="CleanIng.NameColumn" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="模板表列坐标" prop="detailML" class="form-item-inline" v-else>
<el-input-number size="medium" v-model="detailML[index - 1]" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="物料编码所在列" prop="CleanIng" class="form-item-inline" v-if="options2id === 6">
<el-input-number size="medium" v-model="CleanIng.CodeColumn" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="导入表行坐标" prop="detailYH" class="form-item-inline" v-else>
<el-input-number size="medium" v-model="detailYH[index - 1]" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="部门所在列" prop="CleanIng" class="form-item-inline" v-if="options2id === 6">
<el-input-number size="medium" v-model="CleanIng.DepartmentColumn" :min="1"
:step="1">1</el-input-number>
</el-form-item>
<el-form-item label="导入表列坐标" prop="detailYL" class="form-item-inline" v-else>
<el-input-number size="medium" v-model="detailYL[index - 1]" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="数量所在列" prop="CleanIng" class="form-item-inline" v-if="options2id === 6">
<el-input-number size="medium" v-model="CleanIng.NumberColumn" :min="1"
:step="1">1</el-input-number>
</el-form-item>
<el-form-item label="金额所在列" prop="CleanIng" class="form-item-inline" v-if="options2id === 6">
<el-input-number size="medium" v-model="CleanIng.MoneyColumn" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item label="日期所在列" prop="CleanIng" class="form-item-inline"
v-if="options2id === 6 ">
<el-select v-model="datevalue" placeholder="请选择日期所在列" @change="dateChange"
label="日期所在列">
<el-option v-for="item in date" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-input-number style="margin-left: 5vw;" v-if="datevalue == 1" size="medium" v-model="CleanIng.DateColumn" :min="1" :step="1">1</el-input-number>
</el-form-item>
<el-form-item style="display: inline-block;">
<el-button type="danger" icon="el-icon-delete" size="small"
@click="removeInputs(index)">删除</el-button>
</el-form-item>
</div>
<div v-if="options2id !== 6 && instea >= 1" style="color: red; margin-left: 2.5vw;">
为防止后面步骤出错,导入表和模板表的行列坐标必须为表头所在单元格的行列</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<style>
.form-item-inline {
display: inline-block;
margin-right: 20px;
}
</style>
<script>
import {
listSuppliesroledetail,
getSuppliesroledetail,
delSuppliesroledetail,
addSuppliesroledetail,
updateSuppliesroledetail,
exportSuppliesroledetail,
saveSid,
toggleEnable,
toggleDisable,
saveOperation,
saveSidsta,
} from "@/api/system/suppliesroledetail";
import Editor from '@/components/Editor';
export default {
name: "Suppliesroledetail",
components: {
Editor,
},
data() {
return {
date: [{
value: 0,
label: ''
}, {
value: 1,
label: ''
}],
datevalue: 0,
// 遮罩层
loading: true,
//下拉选中的数值
options2id: '',
// 选中数组
ids: [],
name: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 规则详情表格数据
suppliesroledetailList: [],
options1: [],//上级ID
options3: [],
options2: [{ id: 0, operationName: "" }, { id: 1, operationName: "物料转换" }, { id: 2, operationName: "加法运算" }, { id: 3, operationName: "减法运算" }, { id: 4, operationName: "乘法运算" }, { id: 5, operationName: "除法运算" }, { id: 6, operationName: '清洗规则' }],//上级ID
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
inputCount: 0,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
roleId: null,
detailName: null,
detailContent: null,
status: null,
converStatus: null,
},
// 表单参数
form: {
},
CleanIng: {
HeaderRow: '',
NameColumn: '',
CodeColumn: '',
DepartmentColumn: '',
NumberColumn: '',
MoneyColumn: '',
DateColumn: ''
},
detailMH: [],
detailML: [],
detailYH: [],
detailYL: [],
instea: 0,
showTemplate: false, // 控制单元格的显示与隐藏
showImport: false, // 控制行转换的显示与隐藏
showLie: false, // 控制列转换的显示与隐藏
// 表单校验
rules: {
roleId: [
{ required: true, message: '关联id不能为空', trigger: 'change' },
],
convertStatus: [
{ required: true, message: '运算规则不能为空', trigger: 'change' },
],
detailName: [
{ required: true, message: '规则名称不能为空', trigger: 'change' },
]
}
};
},
watch: {
options2id(newValue) {
if (newValue >= 0 && this.detailMH.length >= 1) {
this.instea = 1
}
}
},
computed: {
isDisable() {
return this.instea >= 1 && this.options2id == 6;
},
},
created() {
this.getList();
this.getnameid();
},
methods: {
dateChange() {
this.CleanIng.DateColumn = ''
},
handleRadioChange() {
this.options2id = this.form.convertStatus
this.detailMH = []
this.detailML = []
this.detailYH = []
this.detailYL = []
this.instea = 0
this.CleanIng = {
HeaderRow: '',
NameColumn: '',
CodeColumn: '',
DepartmentColumn: '',
NumberColumn: '',
MoneyColumn: '',
DateColumn: ''
}
},
removeInputs(index) {
this.detailMH.splice(index - 1, 1);
this.detailML.splice(index - 1, 1);
this.detailYH.splice(index - 1, 1);
this.detailYL.splice(index - 1, 1);
this.instea = this.instea - 1;
},
addInputs() {
this.instea += 1;
this.detailMH.push(1)
this.detailML.push(1)
this.detailYH.push(1)
this.detailYL.push(1)
},
toggleEnable(suppliesRoleDetail) {
console.log('你点击了【' + suppliesRoleDetail.s + '】的开关控件,当前开关值:' + suppliesRoleDetail.status);
let enableText = ['启用', '禁用'];
if (suppliesRoleDetail.status === 0) {
toggleEnable(suppliesRoleDetail.id).then((response) => {
if (response.code === 200) {
let message = '操作成功,已经将【' + suppliesRoleDetail.roleName + '】的状态改为【' + enableText[suppliesRoleDetail.status] + '】 !';
this.$message({ message: message, type: 'success' });
} else {
this.$message.error(response.message);
}
});
} else {
toggleDisable(suppliesRoleDetail.id).then((response) => {
if (response.code === 200) {
let message = '操作成功,已经将【' + suppliesRoleDetail.roleName + '】的状态改为【' + enableText[suppliesRoleDetail.status] + '】 !';
this.$message({ message: message, type: 'error' });
} else {
this.$message.error(response.message);
}
});
}
},
/**显示序号*/
indexMethod(index) {
return index + 1;
},
/**获取关联表内容*/
getnameid() {
//上级规则
saveSid().then(response => {
this.options1 = response.rows;
})
},
/** 查询规则详情列表 */
getList() {
this.indexMethod(0);
this.loading = true;
listSuppliesroledetail(this.queryParams).then(response => {
this.suppliesroledetailList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
roleId: null,
detailName: null,
detailYS: null,
detailContent: null,
status: 0,
convertStatus: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
cleanIng: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.name = selection.map(item => item.detailName)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
//上级规则
saveSidsta().then(response => {
this.options3 = response.rows;
})
this.instea = 0;
this.getnameid();
this.reset();
this.open = true;
this.title = "添加规则详情";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.getnameid();
const ids = this.options1.map(option => option.id);
if (ids.findIndex(item => item === row.roleId) !== -1) {
this.reset();
const id = row.id || this.ids
getSuppliesroledetail(id).then(response => {
this.form = response.data;
this.options2id = response.data.convertStatus
const detailContent = response.data.detailContent;
const parse = JSON.parse(detailContent);
console.log(response.data)
if (this.options2id === 6) {
this.instea = 1
this.CleanIng = parse[0]
if (this.CleanIng.DateColumn !== '') {
this.datevalue = 1
} else {
this.datevalue = 0
}
} else {
this.detailMH = parse.map(obj => parseInt(obj.rt) + 1);
this.detailML = parse.map(obj => parseInt(obj.ct) + 1);
this.detailYH = parse.map(obj => parseInt(obj.re) + 1);
this.detailYL = parse.map(obj => parseInt(obj.ce) + 1);
this.instea = this.detailMH.length;
}
this.open = true;
this.title = "修改规则详情";
});
} else {
this.msgError("上级规则已发布,无法修改")
}
},
/** 提交按钮 */
submitForm() {
this.form.cleanIng = JSON.stringify(this.CleanIng);
this.form.detailMH = this.detailMH;
this.form.detailML = this.detailML;
this.form.detailYH = this.detailYH;
this.form.detailYL = this.detailYL;
this.form.status = 1;
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
console.log(JSON.parse(this.form.cleanIng),'2222222222')
updateSuppliesroledetail(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSuppliesroledetail(this.form).then(response => {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const name = row.detailName || this.name;
this.$confirm('是否确认删除规则详情编号为"' + name + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return delSuppliesroledetail(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有规则详情数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return exportSuppliesroledetail(queryParams);
}).then(response => {
this.download(response.msg);
})
}
}
};
</script>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment