fix: 工段表单及相关文件表述修改

This commit is contained in:
caoqianming 2024-04-18 14:46:18 +08:00
parent 9286ad0d73
commit 02b03770c3
9 changed files with 1459 additions and 1044 deletions

View File

@ -152,10 +152,10 @@ export default {
} }
}, },
}, },
// 测点集 // 工段
mgroup: { mgroup: {
list: { list: {
name: "测点集列表", name: "工段列表",
req: async function(data){ req: async function(data){
return await http.get( return await http.get(
`${config.API_URL}/mtm/mgroup/`, `${config.API_URL}/mtm/mgroup/`,
@ -164,7 +164,7 @@ export default {
} }
}, },
item: { item: {
name: "获取测点集详情", name: "获取工段详情",
req: async function(id){ req: async function(id){
return await http.get( return await http.get(
`${config.API_URL}/mtm/mgroup/${id}/` `${config.API_URL}/mtm/mgroup/${id}/`

View File

@ -2353,7 +2353,7 @@ const routes = [
"name": "mgruop", "name": "mgruop",
"path": "/enm_base/mgruop", "path": "/enm_base/mgruop",
"meta": { "meta": {
"title": "测点集", "title": "工段",
"icon": "el-icon-grid", "icon": "el-icon-grid",
"perms": ["enm_base"] "perms": ["enm_base"]
}, },

View File

@ -1,328 +1,409 @@
<template> <template>
<el-dialog <el-dialog
:title="titleMap[mode]" :title="titleMap[mode]"
v-model="visible" v-model="visible"
:size="1000" :size="1000"
destroy-on-close destroy-on-close
@closed="$emit('closed')" @closed="$emit('closed')"
> >
<el-container v-loading="loading"> <el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px"> <el-main style="padding: 0 20px 20px 20px">
<el-form <el-form
ref="dialogForm" ref="dialogForm"
:model="form" :model="form"
:rules="rules" :rules="rules"
:disabled="mode == 'show'" :disabled="mode == 'show'"
label-width="80px" label-width="90px"
> >
<el-row> <el-row>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="form.name" clearable></el-input> <el-input
</el-form-item> v-model="form.name"
</el-col> clearable
<el-col :md="12" :sm="24"> ></el-input>
<el-form-item label="测点编号" prop="code"> </el-form-item>
<el-input v-model="form.code" clearable></el-input> </el-col>
</el-form-item> <el-col :md="12" :sm="24">
</el-col> <el-form-item label="测点编号" prop="code">
<el-col :md="12" :sm="24"> <el-input
<el-form-item label="单位" prop="unit"> v-model="form.code"
<el-input v-model="form.unit" clearable></el-input> clearable
</el-form-item> ></el-input>
</el-col> </el-form-item>
<el-col :md="12" :sm="24"> </el-col>
<el-form-item label="监测设备"> <el-col :md="12" :sm="24">
<el-select <el-form-item label="单位" prop="unit">
v-model="form.ep_monitored" <el-input
placeholder="监测设备" v-model="form.unit"
clearable clearable
style="width: 100%;" ></el-input>
> </el-form-item>
<el-option </el-col>
v-for="item in epOptions" <el-col :md="12" :sm="24">
:key="item.id" <el-form-item label="值类型" prop="val_type">
:label="item.name" <el-select
:value="item.id" v-model="form.val_type"
></el-option> style="width: 100%"
</el-select> >
</el-form-item> <el-option
</el-col> v-for="e in valTypeEnum.values"
<el-col :md="12" :sm="24"> :key="e.key"
<el-form-item label="所属设备"> :value="e.key"
<el-select :label="e.text"
v-model="form.ep_belong" ></el-option>
placeholder="所属设备" </el-select>
clearable </el-form-item>
style="width: 100%;" </el-col>
> <el-col :md="12" :sm="24">
<el-option <el-form-item label="所监测设备">
v-for="item in epOptions" <el-select
:key="item.id" v-model="form.ep_monitored"
:label="item.name" placeholder="所监测设备"
:value="item.id" clearable
></el-option> style="width: 100%"
</el-select> >
</el-form-item> <el-option
</el-col> v-for="item in epOptions"
<el-col :md="12" :sm="24"> :key="item.id"
<el-form-item label="计量物料"> :label="item.name"
<el-select :value="item.id"
v-model="form.material" ></el-option>
placeholder="计量物料" </el-select>
clearable </el-form-item>
style="width: 100%;" </el-col>
> <el-col :md="12" :sm="24">
<el-option <el-form-item label="所属设备">
v-for="item in materials" <el-select
:key="item.id" v-model="form.ep_belong"
:label="item.name" placeholder="所属设备"
:value="item.id" clearable
></el-option> style="width: 100%"
</el-select> >
</el-form-item> <el-option
</el-col> v-for="item in epOptions"
<el-col :md="12" :sm="24"> :key="item.id"
<el-form-item label="计算公式"> :label="item.name"
<el-input v-model="form.formula" clearable></el-input> :value="item.id"
</el-form-item> ></el-option>
</el-col> </el-select>
<el-col :md="12" :sm="24"> </el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="计量物料">
<el-select
v-model="form.material"
placeholder="计量物料"
clearable
style="width: 100%"
>
<el-option
v-for="item in materials"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="是否启用">
<el-switch v-model="form.enabled" />
</el-form-item>
</el-col>
<el-col :md="24" :sm="24">
<el-form-item label="计算公式">
<el-input
v-model="form.formula"
clearable
></el-input>
</el-form-item>
</el-col>
<!-- <el-col :md="12" :sm="24">
<el-form-item label="调用方法"> <el-form-item label="调用方法">
<el-input v-model="form.func_on_change" clearable></el-input> <el-input v-model="form.func_on_change" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col> -->
<el-col :md="8" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="是否启用"> <el-form-item label="自动采集">
<el-switch v-model="form.enabled"/> <el-switch v-model="form.is_auto" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="8" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="自动采集"> <el-form-item label="采集间隔(s)" label-width="90">
<el-switch v-model="form.is_auto"/> <el-input-number
</el-form-item> v-model="form.interval"
</el-col> ></el-input-number>
<el-col :md="8" :sm="24"> </el-form-item>
<el-form-item label="采集间隔(s)" label-width="90"> </el-col>
<el-input-number v-model="form.interval"></el-input-number> <el-col :md="12" :sm="24">
</el-form-item> <el-form-item
</el-col> label="是否表示所监测设备的运行状态"
<el-col :md="12" :sm="24"> label-width="220"
<el-form-item label="工段数据"> >
<el-switch v-model="form.is_all"/> <el-switch
</el-form-item> v-model="form.is_rep_ep_running_state"
</el-col> />
<el-col :md="12" :sm="24"> </el-form-item>
<el-form-item label="所属工段" prop="mgroup"> </el-col>
<el-select <el-col :md="12" :sm="24">
v-model="form.mgroup" <el-form-item
placeholder="所属工段" label="状态量基准值"
clearable label-width="100"
style="width: 100%;" >
@change="mgroupChange" <el-input-number
> v-model="form.ep_base_val1"
<el-option :precision="3"
v-for="item in mgroupOptions" ></el-input-number>
:key="item.id" </el-form-item>
:label="item.name" </el-col>
:value="item.id" <el-col :md="12" :sm="24">
></el-option> <el-form-item
</el-select> label="所属工段"
</el-form-item> prop="mgroup"
</el-col> label-width="120"
<el-col :md="12" :sm="24"> >
<el-form-item label="工段分配"> <el-select
<el-button v-model="form.mgroup"
type="primary" placeholder="所属工段"
icon="el-icon-plus" clearable
@click="addAllocate" style="width: 100%"
></el-button> @change="mgroupChange"
</el-form-item> >
<el-option
</el-col> v-for="item in mgroupOptions"
</el-row> :key="item.id"
<el-row> :label="item.name"
<template v-for="(item,$index) in form.mgroups_allocate" :key="$index"> :value="item.id"
<el-col :md="11" :sm="24"> ></el-option>
<el-form-item label="分配工段" prop="mgroup"> </el-select>
<el-select </el-form-item>
v-model="item.mgroup" </el-col>
placeholder="分配工段" <el-col :md="24" :sm="24">
clearable <el-form-item
style="width: 100%;" label="累计量工段分配"
> label-width="120"
<el-option >
v-for="item in mgroupOptions" <el-button
:key="item.id" type="primary"
:label="item.name" icon="el-icon-plus"
:value="item.id" @click="addAllocate"
></el-option> ></el-button>
</el-select> </el-form-item>
</el-form-item> </el-col>
</el-col> </el-row>
<el-col :md="11" :sm="24"> <el-row>
<el-form-item label="分配比例" prop="rate"> <template
<el-input-number precision="2" v-model="item.ratio" step="0.1" min="0" max="1" clearable controls-position="right"></el-input-number> v-for="(item, $index) in form.mgroups_allocate"
</el-form-item> :key="$index"
</el-col> >
<el-col :md="2" :sm="24"> <el-col :md="11" :sm="24">
<el-button <el-form-item label="分配工段" prop="mgroup">
type="primary" <el-select
icon="el-icon-delete" v-model="item.mgroup"
@click="delAllocate($index)" placeholder="分配工段"
></el-button> clearable
</el-col> style="width: 100%"
</template> >
</el-row> <el-option
</el-form> v-for="item in mgroupOptions"
</el-main> :key="item.id"
<el-footer> :label="item.name"
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button> :value="item.id"
<el-button @click="visible = false">取消</el-button> ></el-option>
</el-footer> </el-select>
</el-container> </el-form-item>
</el-dialog> </el-col>
<el-col :md="11" :sm="24">
<el-form-item label="分配比例" prop="rate">
<el-input-number
precision="2"
v-model="item.ratio"
step="0.1"
min="0"
max="1"
clearable
controls-position="right"
></el-input-number>
</el-form-item>
</el-col>
<el-col :md="2" :sm="24">
<el-button
type="primary"
icon="el-icon-delete"
@click="delAllocate($index)"
></el-button>
</el-col>
</template>
</el-row>
</el-form>
</el-main>
<el-footer>
<el-button type="primary" :loading="isSaveing" @click="submit"
>保存</el-button
>
<el-button @click="visible = false">取消</el-button>
</el-footer>
</el-container>
</el-dialog>
</template> </template>
<script> <script>
import { valTypeEnum } from "@/utils/enum.js";
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
data() { data() {
return { return {
loading: false, valTypeEnum,
mode: "add", loading: false,
titleMap: { mode: "add",
add: "新增", titleMap: {
edit: "编辑", add: "新增",
show: "查看", edit: "编辑",
}, show: "查看",
form: { },
is_auto:true, form: {
belong_dept:null, is_auto: true,
mgroup:null, belong_dept: null,
mgroups_allocate:[], mgroup: null,
interval: 10, mgroups_allocate: [],
func_on_change: '' interval: 10,
}, func_on_change: "",
rules: { is_rep_ep_running_state: false,
name: [{required: true, message: '请输入测点名称'}], },
code: [{required: true, message: '请输入测点编号'}], rules: {
unit: [{required: true, message: '请输入测点单位'}], name: [{ required: true, message: "请输入测点名称" }],
unmgroupit: [{required: true, message: '请请选择测点集'}], code: [{ required: true, message: "请输入测点编号" }],
}, unit: [{ required: true, message: "请输入测点单位" }],
is_all_dept:false, val_type: [{ required: true, message: "请选择值类型" }],
visible: false, unmgroupit: [{ required: true, message: "请请选择工段" }],
isSaveing: false, },
setFiltersVisible: false, is_all_dept: false,
mgroupOptions:[], visible: false,
epOptions:[], isSaveing: false,
materials:[], setFiltersVisible: false,
monitoredOptions:[], mgroupOptions: [],
}; epOptions: [],
}, materials: [],
mounted() { monitoredOptions: [],
this.getMgroup(); };
this.getEquipment(); },
this.getMonitored(); mounted() {
this.getMaterial(); this.getMgroup();
}, this.getEquipment();
methods: { this.getMonitored();
// this.getMaterial();
getMgroup(){ },
this.$API.mtm.mgroup.list.req({page:0,cate:'section'}).then(res=>{ methods: {
this.mgroupOptions = res; //
}) getMgroup() {
}, this.$API.mtm.mgroup.list
// .req({ page: 0, cate: "section" })
getEquipment(){ .then((res) => {
this.$API.em.equipment.list.req({page:0,type:10}).then(res=>{ this.mgroupOptions = res;
this.epOptions = res; });
}) },
}, //
// getEquipment() {
getMonitored(){ this.$API.em.equipment.list
this.$API.em.equipment.list.req({page:0,type:20}).then(res=>{ .req({ page: 0, type: 10 })
this.monitoredOptions = res; .then((res) => {
}) this.epOptions = res;
}, });
// },
getMaterial(){ //
this.$API.mtm.material.list.req({page:0, type__in:"0, 30"}).then(res=>{ getMonitored() {
this.materials = res; this.$API.em.equipment.list
}) .req({ page: 0, type: 20 })
}, .then((res) => {
mgroupChange(e){ this.monitoredOptions = res;
this.form.mgroups_allocate.push({mgroup:e,ratio:1}); });
}, },
// //
open(mode = "add") { getMaterial() {
this.mode = mode; this.$API.mtm.material.list
this.visible = true; .req({ page: 0, type__in: "0, 30" })
return this; .then((res) => {
}, this.materials = res;
addAllocate(){ });
this.form.mgroups_allocate.push({mgroup:null,ratio:0}); },
}, mgroupChange(e) {
delAllocate(index){ this.form.mgroups_allocate.push({ mgroup: e, ratio: 1 });
this.form.mgroups_allocate.splice(index,1) },
}, //
// open(mode = "add") {
submit() { this.mode = mode;
this.$refs.dialogForm.validate(async (valid) => { this.visible = true;
if (valid) { return this;
this.isSaveing = true; },
if(this.form.mgroup==''){ addAllocate() {
this.form.mgroup=null this.form.mgroups_allocate.push({ mgroup: null, ratio: 0 });
} },
if( this.form.mgroups_allocate.length>0){ delAllocate(index) {
let arr = this.form.mgroups_allocate.filter(item=>{ this.form.mgroups_allocate.splice(index, 1);
return item.mgroup!==''&&item.mgroup!==null },
}) //
this.form.mgroups_allocate = arr; submit() {
} this.$refs.dialogForm.validate(async (valid) => {
if (this.mode == "add") { if (valid) {
this.$API.enm.mpoint.create.req(this.form).then(res=>{ this.isSaveing = true;
this.isSaveing = false; if (this.form.mgroup == "") {
this.$emit("success", this.form, this.mode); this.form.mgroup = null;
this.visible = false; }
this.$message.success("操作成功"); if (this.form.mgroups_allocate.length > 0) {
}).catch(res=>{ let arr = this.form.mgroups_allocate.filter((item) => {
this.isSaveing = false; return item.mgroup !== "" && item.mgroup !== null;
}) });
} else if (this.mode == "edit") { this.form.mgroups_allocate = arr;
this.$API.enm.mpoint.update.req(this.form.id,this.form).then(res=>{ }
this.isSaveing = false; if (this.mode == "add") {
this.$emit("success", this.form, this.mode); this.$API.enm.mpoint.create
this.visible = false; .req(this.form)
this.$message.success("操作成功"); .then((res) => {
}).catch(res=>{ this.isSaveing = false;
this.isSaveing = false; this.$emit("success", this.form, this.mode);
}) this.visible = false;
} this.$message.success("操作成功");
} })
}); .catch((res) => {
}, this.isSaveing = false;
// });
setData(data) { } else if (this.mode == "edit") {
debugger; this.$API.enm.mpoint.update
console.log(data) .req(this.form.id, this.form)
if(data.mgroups_allocate.length>1){ .then((res) => {
this.is_all_dept = true this.isSaveing = false;
} this.$emit("success", this.form, this.mode);
Object.assign(this.form, data); this.visible = false;
this.$message.success("操作成功");
}, })
// .catch((res) => {
setFilters(filters) { this.isSaveing = false;
this.selectionFilters = filters; });
this.setFiltersVisible = true; }
}, }
}, });
},
//
setData(data) {
debugger;
console.log(data);
if (data.mgroups_allocate.length > 1) {
this.is_all_dept = true;
}
Object.assign(this.form, data);
},
//
setFilters(filters) {
this.selectionFilters = filters;
this.setFiltersVisible = true;
},
},
}; };
</script> </script>
<style> <style>
.formItem{ .formItem {
width: 100%; width: 100%;
} }
</style> </style>

View File

@ -2,31 +2,110 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-input style="margin-right: 5px;" v-model="query.search" placeholder="名称" clearable></el-input> <el-input
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> style="margin-right: 5px"
v-model="query.search"
placeholder="名称"
clearable
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'mgroup.create'"></el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="table_add"
v-auth="'mgroup.create'"
></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" :params="query" hidePagination> <scTable
<el-table-column label="#" type="index" width="50"></el-table-column> ref="table"
<el-table-column label="名称" prop="name" min-width="100"></el-table-column> :apiObj="apiObj"
row-key="id"
:params="query"
hidePagination
>
<el-table-column
label="#"
type="index"
width="50"
></el-table-column>
<el-table-column
label="名称"
prop="name"
min-width="100"
></el-table-column>
<el-table-column label="分类" prop="cate" min-width="100"> <el-table-column label="分类" prop="cate" min-width="100">
<template #default="scope"> <template #default="scope">
<span>{{ cates_[scope.row.cate] }}</span> <span>{{ cates_[scope.row.cate] }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属部门" prop="belong_dept_name" min-width="150"></el-table-column> <el-table-column
<el-table-column label="创建时间" prop="create_time" min-width="150"></el-table-column> label="排班规则"
<el-table-column label="操作" fixed="right" align="center" width="140"> prop="shift_rule"
min-width="100"
></el-table-column>
<el-table-column label="开启能源监测" min-width="100">
<template #default="scope"> <template #default="scope">
<el-button link size="small" @click="table_edit(scope.row)" v-auth="'mgroup.update'" type="primary">编辑</el-button> <el-icon v-if="scope.row.need_enm" color="green"
><CircleCheckFilled
/></el-icon>
<el-icon v-else color="red"
><CircleCloseFilled
/></el-icon>
</template>
</el-table-column>
<el-table-column label="是否正在运行" min-width="100">
<template #default="scope">
<el-icon v-if="scope.row.is_running" color="green"
><CircleCheckFilled
/></el-icon>
</template>
</el-table-column>
<el-table-column
label="所属部门"
prop="belong_dept_name"
min-width="150"
></el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
min-width="150"
></el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
width="140"
>
<template #default="scope">
<el-button
link
size="small"
@click="table_edit(scope.row)"
v-auth="'mgroup.update'"
type="primary"
>编辑</el-button
>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)"> <el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference> <template #reference>
<el-button link size="small" v-auth="'mgroup.delete'" type="danger">删除</el-button> <el-button
link
size="small"
v-auth="'mgroup.delete'"
type="danger"
>删除</el-button
>
</template> </template>
</el-popconfirm> </el-popconfirm>
</template> </template>
@ -35,79 +114,85 @@
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog
v-if="dialog.save" v-if="dialog.save"
ref="saveDialog" ref="saveDialog"
@success="handleSaveSuccess" @success="handleSaveSuccess"
@closed="dialog.save = false" @closed="dialog.save = false"
></save-dialog> ></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./mgroup_form.vue"; import saveDialog from "./mgroup_form.vue";
export default { export default {
name: 'dept', name: "dept",
components: { components: {
saveDialog saveDialog,
},
data() {
return {
apiObj: this.$API.mtm.mgroup.list,
query: {
cate: "section",
},
dialog: {
save: false,
permission: false,
},
selection: [],
cates_: {
section: "工序",
other: "其他",
},
};
},
methods: {
//
table_add() {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("add");
});
}, },
data() { //
return { table_edit(row) {
apiObj: this.$API.mtm.mgroup.list, this.dialog.save = true;
query: { this.$nextTick(() => {
cate: "section" this.$refs.saveDialog.open("edit").setData(row);
}, });
dialog: { },
save: false, //
permission: false, async table_del(row) {
}, var id = row.id;
selection:[], var res = await this.$API.mtm.mgroup.delete.req(id);
cates_:{ if (res.err_msg) {
'section':'工序', this.$message.error(res.err_msg);
'other':'其他', } else {
}, this.$refs.table.refresh();
this.$message.success("删除成功");
} }
}, },
methods: { //
// selectionChange(selection) {
table_add() { this.selection = selection;
this.dialog.save = true; },
this.$nextTick(() => { //
this.$refs.saveDialog.open("add"); handleQuery() {
}); this.$refs.table.queryData(this.query);
}, },
// //
table_edit(row) { //
this.dialog.save = true; handleSaveSuccess(data, mode) {
this.$nextTick(() => { this.dialog.save = true;
this.$refs.saveDialog.open("edit").setData(row); this.$refs.table.refresh();
}); },
}, },
// };
async table_del(row){
var id = row.id;
var res = await this.$API.mtm.mgroup.delete.req(id);
if(res.err_msg){
this.$message.error(res.err_msg)
}else{
this.$refs.table.refresh();
this.$message.success("删除成功")
}
},
//
selectionChange(selection){
this.selection = selection;
},
//
handleQuery(){
this.$refs.table.queryData(this.query)
},
//
//
handleSaveSuccess(data, mode) {
this.dialog.save = true;
this.$refs.table.refresh();
},
}
}
</script> </script>
<style scoped> <style scoped>
.treeMain {width: 100%;height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;} .treeMain {
width: 100%;
height: 280px;
overflow: auto;
border: 1px solid #dcdfe6;
margin-bottom: 10px;
}
</style> </style>

View File

@ -1,221 +1,265 @@
<template> <template>
<el-dialog <el-dialog
:title="titleMap[mode]" :title="titleMap[mode]"
v-model="visible" v-model="visible"
:size="1000" :size="1000"
destroy-on-close destroy-on-close
@closed="$emit('closed')" @closed="$emit('closed')"
> >
<el-container v-loading="loading"> <el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px"> <el-main style="padding: 0 20px 20px 20px">
<el-form <el-form
ref="dialogForm" ref="dialogForm"
:model="form" :model="form"
:rules="rules" :rules="rules"
label-position="right" label-position="right"
label-width="80px" label-width="80px"
style="padding: 0 10px;" style="padding: 0 10px"
> >
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="form.name" clearable></el-input> <el-input v-model="form.name" clearable></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="排班规则"> <!-- <el-form-item label="排班规则">
<el-input v-model="form.shift_rule" clearable></el-input> <el-input v-model="form.shift_rule" clearable></el-input>
</el-form-item> --> </el-form-item> -->
<el-form-item label="分类" prop="cate"> <el-form-item label="分类" prop="cate">
<el-select <el-select
v-model="form.cate" v-model="form.cate"
placeholder="分类" placeholder="分类"
clearable clearable
style="width: 100%;" style="width: 100%"
> >
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="主要产品"> <el-form-item label="排班规则">
<el-select <el-select
v-model="form.product" v-model="form.shift_rule"
placeholder="主要产品" style="width: 100%"
clearable >
style="width: 100%;" <el-option
> v-for="item in shiftOptions"
<el-option :key="item"
v-for="item in materials" :label="item"
:key="item.id" :value="item"
:label="item.name" ></el-option>
:value="item.id" </el-select>
></el-option> </el-form-item>
</el-select> <el-form-item label="主要产品">
</el-form-item> <el-select
<el-form-item label="直接材料"> v-model="form.product"
<el-select placeholder="主要产品"
v-model="form.input_materials" clearable
placeholder="直接材料" style="width: 100%"
clearable >
multiple <el-option
style="width: 100%;" v-for="item in materials"
> :key="item.id"
<el-option :label="item.name"
v-for="item in materials" :value="item.id"
:key="item.id" ></el-option>
:label="item.name" </el-select>
:value="item.id" </el-form-item>
></el-option> <el-form-item label="直接材料">
</el-select> <el-select
</el-form-item> v-model="form.input_materials"
<el-form-item label="检测材料"> placeholder="直接材料"
<el-select clearable
v-model="form.test_materials" multiple
placeholder="检测材料" style="width: 100%"
clearable >
multiple <el-option
style="width: 100%;" v-for="item in materials"
> :key="item.id"
<el-option :label="item.name"
v-for="item in materials" :value="item.id"
:key="item.id" ></el-option>
:label="item.name" </el-select>
:value="item.id" </el-form-item>
></el-option> <el-form-item label="检测材料">
</el-select> <el-select
</el-form-item> v-model="form.test_materials"
<el-form-item label="所属部门"> placeholder="检测材料"
<el-select clearable
v-model="form.belong_dept" multiple
placeholder="所属部门" style="width: 100%"
clearable >
style="width: 100%;" <el-option
> v-for="item in materials"
<el-option :key="item.id"
v-for="item in group" :label="item.name"
:key="item.id" :value="item.id"
:label="item.name" ></el-option>
:value="item.id" </el-select>
></el-option> </el-form-item>
</el-select> <el-form-item label="所属部门">
</el-form-item> <el-select
</el-form> v-model="form.belong_dept"
</el-main> placeholder="所属部门"
<el-footer> clearable
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button> style="width: 100%"
<el-button @click="visible = false">取消</el-button> >
</el-footer> <el-option
</el-container> v-for="item in group"
</el-dialog> :key="item.id"
</template> :label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
</el-main>
<el-footer>
<el-button type="primary" :loading="isSaveing" @click="submit"
>保存</el-button
>
<el-button @click="visible = false">取消</el-button>
</el-footer>
</el-container>
</el-dialog>
</template>
<script> <script>
const defaultForm = { const defaultForm = {
name: "", name: "",
cate:'', cate: "",
product:'', product: "",
belong_dept:'', belong_dept: "",
test_materials:'', test_materials: "",
input_materials:'', input_materials: "",
}; };
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
data() { data() {
return { return {
loading: false, shiftOptions: [],
mode: "add", loading: false,
titleMap: { mode: "add",
add: '新增测点集', titleMap: {
edit: '编辑测点集', add: "新增工段",
show: '查看测点集' edit: "编辑工段",
}, show: "查看工段",
// },
form: { //
shift_rule:'tkx' form: {
}, shift_rule: "tkx",
// },
rules: { //
name: [{required: true, message: "请输入名称", trigger: "blur"}], rules: {
cate: [{required: true, message: "请选择分类", trigger: "blur"}], name: [
material: [{required: true, message: "请选择主要产品", trigger: "blur"}], { required: true, message: "请输入名称", trigger: "blur" },
belong_dept: [{required: true, message: "请选择所属部门", trigger: "blur"}]
},
visible: false,
isSaveing: false,
options:[
{label:'工段',value:'section'},
{label:'其他',value:'other'},
], ],
group: [], cate: [
materials:[], { required: true, message: "请选择分类", trigger: "blur" },
setFiltersVisible: false, ],
}; // material: [{required: true, message: "", trigger: "blur"}],
}, belong_dept: [
mounted() { {
this.getGroup();// required: true,
this.getMaterials();// message: "请选择所属部门",
}, trigger: "blur",
methods: { },
// ],
getGroup() { },
this.$API.system.dept.list.req({ page_size: 3 , type:'dept'}).then(res=>{ visible: false,
isSaveing: false,
options: [
{ label: "工段", value: "section" },
{ label: "其他", value: "other" },
],
group: [],
materials: [],
setFiltersVisible: false,
};
},
mounted() {
this.getShifts();
this.getGroup(); //
this.getMaterials(); //
},
methods: {
getShifts() {
let shiftList = [];
this.$API.mtm.shift.list.req({ page: 0 }).then((res) => {
for (var i = 0; i < res.length; i++) {
if (shiftList.indexOf(res[i].rule) == -1) {
shiftList.push(res[i].rule);
}
}
this.shiftOptions = shiftList;
});
},
//
getGroup() {
this.$API.system.dept.list
.req({ page_size: 3, type: "dept" })
.then((res) => {
this.group = res.results; this.group = res.results;
}); });
}, },
// //
getMaterials(){ getMaterials() {
var res = this.$API.mtm.material.list.req({page:0}).then(res=>{ var res = this.$API.mtm.material.list
.req({ page: 0 })
.then((res) => {
this.materials = res; this.materials = res;
}); });
}, },
// //
open(mode = "add") { open(mode = "add") {
this.mode = mode; this.mode = mode;
this.visible = true; this.visible = true;
return this; return this;
}, },
// //
setData(data) { setData(data) {
Object.assign(this.form,data); Object.assign(this.form, data);
}, },
getReceptionist(data) { getReceptionist(data) {
this.form.leader=data.id; this.form.leader = data.id;
this.form.leader_name=data.name this.form.leader_name = data.name;
}, },
// //
submit() { submit() {
let that = this; let that = this;
that.$refs.dialogForm.validate(async (valid) => { that.$refs.dialogForm.validate(async (valid) => {
if (valid) { if (valid) {
that.isSaveing = true; that.isSaveing = true;
if(that.mode==='add'){ if (that.mode === "add") {
that.$API.mtm.mgroup.create.req(that.form).then(res=>{ that.$API.mtm.mgroup.create
that.isSaveing = false; .req(that.form)
that.$emit("success", that.form, that.mode); .then((res) => {
that.visible = false; that.isSaveing = false;
that.$message.success("操作成功"); that.$emit("success", that.form, that.mode);
}) that.visible = false;
}else{ that.$message.success("操作成功");
res = that.$API.mtm.mgroup.update.req(that.form.id,that.form).then(res=>{ });
that.isSaveing = false; } else {
that.$emit("success", that.form, that.mode); res = that.$API.mtm.mgroup.update
that.visible = false; .req(that.form.id, that.form)
that.$message.success("操作成功"); .then((res) => {
}) that.isSaveing = false;
} that.$emit("success", that.form, that.mode);
} that.visible = false;
}); that.$message.success("操作成功");
}, });
}
}
});
},
// //
setFilters(filters) { setFilters(filters) {
this.selectionFilters = filters; this.selectionFilters = filters;
this.setFiltersVisible = true; this.setFiltersVisible = true;
}, },
}, },
}; };
</script> </script>
<style>
</style>
<style></style>

View File

@ -11,13 +11,13 @@
style="width: 120px;margin-right: 5px;" style="width: 120px;margin-right: 5px;"
/> --> /> -->
<el-date-picker <el-date-picker
v-model="query.date" v-model="query.date"
type="month" type="month"
value-format="YYYY-MM" value-format="YYYY-MM"
format="YYYY-MM" format="YYYY-MM"
placeholder="月" placeholder="月"
class="headerSearch" class="headerSearch"
/> />
<el-select <el-select
v-model="query.fee" v-model="query.fee"
placeholder="费用类型" placeholder="费用类型"
@ -44,31 +44,81 @@
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> <el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'feeset.create'"></el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="table_add"
v-auth="'feeset.create'"
></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id"> <scTable ref="table" :apiObj="apiObj" row-key="id">
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column
<el-table-column label="年" prop="year" min-width="100"></el-table-column> label="#"
<el-table-column label="月" prop="month" min-width="100"></el-table-column> type="index"
<el-table-column label="单位成本" prop="cost_unit" min-width="150"></el-table-column> width="50"
<el-table-column label="关联工段" prop="mgroup_name" min-width="150"></el-table-column> ></el-table-column>
<el-table-column
label="年"
prop="year"
min-width="100"
></el-table-column>
<el-table-column
label="月"
prop="month"
min-width="100"
></el-table-column>
<el-table-column
label="单位成本"
prop="cost_unit"
min-width="150"
></el-table-column>
<el-table-column
label="关联工段"
prop="mgroup_name"
min-width="150"
></el-table-column>
<el-table-column label="关联费用" prop="fee" min-width="150"> <el-table-column label="关联费用" prop="fee" min-width="150">
<template #default="scope"> <template #default="scope">
<span>{{ scope.row.fee_.name }}</span> <span>{{ scope.row.fee_.name }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="140"> <el-table-column
label="操作"
fixed="right"
align="center"
width="140"
>
<template #default="scope"> <template #default="scope">
<el-button link size="small" @click="table_edit(scope.row)" v-auth="'feeset.update'" type="primary">编辑</el-button> <el-button
link
size="small"
@click="table_edit(scope.row)"
v-auth="'feeset.update'"
type="primary"
>编辑</el-button
>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)"> <el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference> <template #reference>
<el-button link size="small" v-auth="'feeset.delete'" type="danger">删除</el-button> <el-button
link
size="small"
v-auth="'feeset.delete'"
type="danger"
>删除</el-button
>
</template> </template>
</el-popconfirm> </el-popconfirm>
</template> </template>
@ -77,101 +127,107 @@
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog
v-if="dialog.save" v-if="dialog.save"
ref="saveDialog" ref="saveDialog"
@success="handleSaveSuccess" @success="handleSaveSuccess"
@closed="dialog.save = false" @closed="dialog.save = false"
></save-dialog> ></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./feeset_form.vue"; import saveDialog from "./feeset_form.vue";
export default { export default {
name: 'dept', name: "dept",
components: { components: {
saveDialog saveDialog,
},
data() {
return {
apiObj: this.$API.fim.feeset.list,
query: {
date: "",
fee: "",
mgroup: "",
},
dialog: {
save: false,
},
selection: [],
options: [],
feeOptions: [],
};
},
mounted() {
this.getFee();
this.getMgroup();
},
methods: {
//
getMgroup() {
this.$API.mtm.mgroup.list.req({ page: 0 }).then((res) => {
this.options = res;
});
}, },
data() { //
return { getFee() {
apiObj: this.$API.fim.feeset.list, this.$API.fim.fee.req({ page: 0 }).then((res) => {
query: { this.feeOptions = res;
date:'', });
fee:'', },
mgroup:'', //
}, table_add() {
dialog: { this.dialog.save = true;
save: false, this.$nextTick(() => {
}, this.$refs.saveDialog.open("add");
selection:[], });
options:[], },
feeOptions:[], //
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
async table_del(row) {
var id = row.id;
var res = await this.$API.mtm.mgroup.delete.req(id);
if (res.err_msg) {
this.$message.error(res.err_msg);
} else {
this.$refs.table.refresh();
this.$message.success("删除成功");
} }
}, },
mounted(){ //
this.getFee(); selectionChange(selection) {
this.getMgroup(); this.selection = selection;
}, },
methods: { //
// handleQuery() {
getMgroup(){ let year = this.query.date.split("-")[0];
this.$API.mtm.mgroup.list.req({page:0}).then(res=>{ let month = this.query.date.split("-")[1];
this.options = res; let query = {};
}) query.year = Number(year);
}, query.month = Number(month);
// query.fee = this.query.fee;
getFee(){ query.mgroup = this.query.mgroup;
this.$API.fim.fee.req({page:0}).then(res=>{ this.$refs.table.queryData(query);
this.feeOptions = res; },
}) //
}, //
// handleSaveSuccess(data, mode) {
table_add() { this.dialog.save = false;
this.dialog.save = true; this.$refs.table.refresh();
this.$nextTick(() => { },
this.$refs.saveDialog.open("add"); },
}); };
},
//
table_edit(row) {
this.dialog.save = true;
this.$nextTick(() => {
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
async table_del(row){
var id = row.id;
var res = await this.$API.mtm.mgroup.delete.req(id);
if(res.err_msg){
this.$message.error(res.err_msg)
}else{
this.$refs.table.refresh();
this.$message.success("删除成功")
}
},
//
selectionChange(selection){
this.selection = selection;
},
//
handleQuery(){
let year = this.query.date.split('-')[0];
let month = this.query.date.split('-')[1];
let query = {};
query.year = Number(year);
query.month = Number(month);
query.fee =this.query.fee;
query.mgroup =this.query.mgroup;
this.$refs.table.queryData(query)
},
//
//
handleSaveSuccess(data, mode) {
this.dialog.save = false;
this.$refs.table.refresh();
},
}
}
</script> </script>
<style scoped> <style scoped>
.treeMain {width: 100%;height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;} .treeMain {
width: 100%;
height: 280px;
overflow: auto;
border: 1px solid #dcdfe6;
margin-bottom: 10px;
}
</style> </style>

View File

@ -1,202 +1,224 @@
<template> <template>
<el-dialog <el-dialog
:title="titleMap[mode]" :title="titleMap[mode]"
v-model="visible" v-model="visible"
:size="1000" :size="1000"
destroy-on-close destroy-on-close
@closed="$emit('closed')" @closed="$emit('closed')"
> >
<el-container v-loading="loading"> <el-container v-loading="loading">
<el-main style="padding: 0 20px 20px 20px"> <el-main style="padding: 0 20px 20px 20px">
<el-form <el-form
ref="dialogForm" ref="dialogForm"
:model="form" :model="form"
:rules="rules" :rules="rules"
label-position="right" label-position="right"
label-width="80px" label-width="80px"
style="padding: 0 10px;" style="padding: 0 10px"
> >
<el-row> <el-row>
<el-col :lg="12" :md="24"> <el-col :lg="12" :md="24">
<el-form-item label="月份" prop="date"> <el-form-item label="月份" prop="date">
<el-date-picker <el-date-picker
v-model="form.date" v-model="form.date"
type="month" type="month"
value-format="YYYY-MM" value-format="YYYY-MM"
format="YYYY-MM" format="YYYY-MM"
placeholder="月" placeholder="月"
style="width: 100%;" style="width: 100%"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :lg="12" :md="24"> <el-col :lg="12" :md="24">
<el-form-item label="关联工段" prop="mgroup"> <el-form-item label="关联工段" prop="mgroup">
<el-select <el-select
v-model="form.mgroup" v-model="form.mgroup"
placeholder="关联工段" placeholder="关联工段"
clearable clearable
style="width: 100%;" style="width: 100%"
> >
<el-option <el-option
v-for="item in options" v-for="item in options"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :lg="12" :md="24"> <el-col :lg="12" :md="24">
<el-form-item label="关联费用" prop="fee"> <el-form-item label="关联费用" prop="fee">
<el-select <el-select
v-model="form.fee" v-model="form.fee"
placeholder="关联费用" placeholder="关联费用"
clearable clearable
style="width: 100%;" style="width: 100%"
> >
<el-option <el-option
v-for="item in feeOptions" v-for="item in feeOptions"
:key="item.id" :key="item.id"
:label="item.name" :label="item.name"
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :lg="12" :md="24"> <el-col :lg="12" :md="24">
<el-form-item label="单位成本" prop="cost_unit"> <el-form-item label="单位成本" prop="cost_unit">
<el-input-number <el-input-number
v-model="form.cost_unit" v-model="form.cost_unit"
controls-position="right" controls-position="right"
:precision="2" :precision="2"
style="width: 100%;" style="width: 100%"
clearable> clearable
</el-input-number> >
</el-form-item> </el-input-number>
</el-col> </el-form-item>
</el-row> </el-col>
</el-form> </el-row>
</el-main> </el-form>
<el-footer> </el-main>
<el-button type="primary" :loading="isSaveing" @click="submit">保存</el-button> <el-footer>
<el-button @click="visible = false">取消</el-button> <el-button type="primary" :loading="isSaveing" @click="submit"
</el-footer> >保存</el-button
</el-container> >
</el-dialog> <el-button @click="visible = false">取消</el-button>
</template> </el-footer>
</el-container>
</el-dialog>
</template>
<script> <script>
const defaultForm = { const defaultForm = {
year: "", year: "",
month:'', month: "",
mgroup:'', mgroup: "",
fee:'', fee: "",
cost_unit:'', cost_unit: "",
}; };
export default { export default {
emits: ["success", "closed"], emits: ["success", "closed"],
data() { data() {
return { return {
loading: false, loading: false,
mode: "add", mode: "add",
titleMap: { titleMap: {
add: '新增测点集', add: "新增",
edit: '编辑测点集', edit: "编辑",
show: '查看测点集' show: "查看",
},
//
form: {
},
//
rules: {
name: [{required: true, message: "请输入名称", trigger: "blur"}],
cate: [{required: true, message: "请选择分类", trigger: "blur"}],
material: [{required: true, message: "请选择主要产品", trigger: "blur"}],
belong_dept: [{required: true, message: "请选择所属部门", trigger: "blur"}]
},
visible: false,
isSaveing: false,
options: [],
feeOptions:[],
setFiltersVisible: false,
};
},
mounted() {
this.getFee();
this.getMgroup();
},
methods: {
//
getMgroup(){
this.$API.mtm.mgroup.list.req({page:0}).then(res=>{
this.options = res;
})
}, },
// //
getFee(){ form: {},
this.$API.fim.fee.req({page:0}).then(res=>{ //
this.feeOptions = res; rules: {
}) name: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
cate: [
{ required: true, message: "请选择分类", trigger: "blur" },
],
material: [
{
required: true,
message: "请选择主要产品",
trigger: "blur",
},
],
belong_dept: [
{
required: true,
message: "请选择所属部门",
trigger: "blur",
},
],
}, },
// visible: false,
open(mode = "add") { isSaveing: false,
this.mode = mode; options: [],
this.visible = true; feeOptions: [],
return this; setFiltersVisible: false,
}, };
// },
setData(data) { mounted() {
let year = data.year+''; this.getFee();
let month = data.month<10?'0'+data.month:data.month+''; this.getMgroup();
month = year+'-'+month; },
data.date = month; methods: {
Object.assign(this.form,data); //
}, getMgroup() {
getReceptionist(data) { this.$API.mtm.mgroup.list.req({ page: 0 }).then((res) => {
this.form.leader=data.id; this.options = res;
this.form.leader_name=data.name });
}, },
// //
submit() { getFee() {
let that = this; this.$API.fim.fee.req({ page: 0 }).then((res) => {
that.$refs.dialogForm.validate(async (valid) => { this.feeOptions = res;
if (valid) { });
that.isSaveing = true; },
let arr = that.form.date.split('-'); //
that.form.year = arr[0]; open(mode = "add") {
that.form.month = arr[1]; this.mode = mode;
if(that.mode==='add'){ this.visible = true;
that.$API.fim.feeset.create.req(that.form).then(res=>{ return this;
that.isSaveing = false; },
that.$emit("success", that.form, that.mode); //
that.visible = false; setData(data) {
that.$message.success("操作成功"); let year = data.year + "";
}).catch(res=>{ let month = data.month < 10 ? "0" + data.month : data.month + "";
that.isSaveing = false; month = year + "-" + month;
}) data.date = month;
}else{ Object.assign(this.form, data);
res = that.$API.fim.feeset.update.req(that.form.id,that.form).then(res=>{ },
that.isSaveing = false; getReceptionist(data) {
that.$emit("success", that.form, that.mode); this.form.leader = data.id;
that.visible = false; this.form.leader_name = data.name;
that.$message.success("操作成功"); },
}).catch(res=>{ //
that.isSaveing = false; submit() {
}) let that = this;
} that.$refs.dialogForm.validate(async (valid) => {
} if (valid) {
}); that.isSaveing = true;
}, let arr = that.form.date.split("-");
that.form.year = arr[0];
that.form.month = arr[1];
if (that.mode === "add") {
that.$API.fim.feeset.create
.req(that.form)
.then((res) => {
that.isSaveing = false;
that.$emit("success", that.form, that.mode);
that.visible = false;
that.$message.success("操作成功");
})
.catch((res) => {
that.isSaveing = false;
});
} else {
res = that.$API.fim.feeset.update
.req(that.form.id, that.form)
.then((res) => {
that.isSaveing = false;
that.$emit("success", that.form, that.mode);
that.visible = false;
that.$message.success("操作成功");
})
.catch((res) => {
that.isSaveing = false;
});
}
}
});
},
// //
setFilters(filters) { setFilters(filters) {
this.selectionFilters = filters; this.selectionFilters = filters;
this.setFiltersVisible = true; this.setFiltersVisible = true;
}, },
}, },
}; };
</script> </script>
<style>
</style>
<style></style>

View File

@ -3,13 +3,13 @@
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-date-picker <el-date-picker
v-model="query.monthData" v-model="query.monthData"
type="month" type="month"
value-format="YYYY-MM" value-format="YYYY-MM"
format="YYYY-MM" format="YYYY-MM"
placeholder="月" placeholder="月"
class="headerSearch" class="headerSearch"
/> />
<el-select <el-select
v-model="query.material" v-model="query.material"
placeholder="物料" placeholder="物料"
@ -23,27 +23,76 @@
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> <el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'priceset.create'"></el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="table_add"
v-auth="'priceset.create'"
></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id"> <scTable ref="table" :apiObj="apiObj" row-key="id">
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column
<el-table-column label="年" prop="year" min-width="100"></el-table-column> label="#"
<el-table-column label="月" prop="month" min-width="100"></el-table-column> type="index"
<el-table-column label="关联物料" prop="material_name" min-width="150"></el-table-column> width="50"
<el-table-column label="单价" prop="price_unit" min-width="150"></el-table-column> ></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="140"> <el-table-column
label="年"
prop="year"
min-width="100"
></el-table-column>
<el-table-column
label="月"
prop="month"
min-width="100"
></el-table-column>
<el-table-column
label="关联物料"
prop="material_name"
min-width="150"
></el-table-column>
<el-table-column
label="单价"
prop="price_unit"
min-width="150"
></el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
width="140"
>
<template #default="scope"> <template #default="scope">
<el-button link size="small" @click="table_edit(scope.row)" v-auth="'priceset.update'" type="primary">编辑</el-button> <el-button
link
size="small"
@click="table_edit(scope.row)"
v-auth="'priceset.update'"
type="primary"
>编辑</el-button
>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)"> <el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference> <template #reference>
<el-button link size="small" v-auth="'priceset.delete'" type="danger">删除</el-button> <el-button
link
size="small"
v-auth="'priceset.delete'"
type="danger"
>删除</el-button
>
</template> </template>
</el-popconfirm> </el-popconfirm>
</template> </template>
@ -52,91 +101,97 @@
</el-main> </el-main>
</el-container> </el-container>
<save-dialog <save-dialog
v-if="dialog.save" v-if="dialog.save"
ref="saveDialog" ref="saveDialog"
@success="handleSaveSuccess" @success="handleSaveSuccess"
@closed="dialog.save = false" @closed="dialog.save = false"
></save-dialog> ></save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./priceset_form.vue"; import saveDialog from "./priceset_form.vue";
export default { export default {
name: 'dept', name: "dept",
components: { components: {
saveDialog saveDialog,
},
data() {
return {
apiObj: this.$API.fim.priceset.list,
query: {
monthData: "",
material: "",
},
dialog: {
save: false,
},
selection: [],
options: [],
};
},
mounted() {
this.getMaterial();
},
methods: {
//
getMaterial() {
this.$API.mtm.material.list.req({ page: 0 }).then((res) => {
this.options = res;
});
}, },
data() { //
return { table_add() {
apiObj: this.$API.fim.priceset.list, this.dialog.save = true;
query: { this.$nextTick(() => {
monthData:'', this.$refs.saveDialog.open("add");
material:'', });
}, },
dialog: { //
save: false, table_edit(row) {
}, this.dialog.save = true;
selection:[], this.$nextTick(() => {
options:[], this.$refs.saveDialog.open("edit").setData(row);
});
},
//
async table_del(row) {
var id = row.id;
var res = await this.$API.mtm.mgroup.delete.req(id);
if (res.err_msg) {
this.$message.error(res.err_msg);
} else {
this.$refs.table.refresh();
this.$message.success("删除成功");
} }
}, },
mounted(){ //
this.getMaterial(); selectionChange(selection) {
this.selection = selection;
}, },
methods: { //
// handleQuery() {
getMaterial(){ let year = this.query.monthData.split("-")[0];
this.$API.mtm.material.list.req({page:0}).then(res=>{ let month = this.query.monthData.split("-")[1];
this.options = res; let query = {};
}) query.year = Number(year);
}, query.month = Number(month);
// query.material = this.query.material;
table_add() { this.$refs.table.queryData(query);
this.dialog.save = true; },
this.$nextTick(() => { //
this.$refs.saveDialog.open("add"); //
}); handleSaveSuccess(data, mode) {
}, this.dialog.save = false;
// this.$refs.table.refresh();
table_edit(row) { },
this.dialog.save = true; },
this.$nextTick(() => { };
this.$refs.saveDialog.open("edit").setData(row);
});
},
//
async table_del(row){
var id = row.id;
var res = await this.$API.mtm.mgroup.delete.req(id);
if(res.err_msg){
this.$message.error(res.err_msg)
}else{
this.$refs.table.refresh();
this.$message.success("删除成功")
}
},
//
selectionChange(selection){
this.selection = selection;
},
//
handleQuery(){
let year = this.query.monthData.split('-')[0];
let month = this.query.monthData.split('-')[1];
let query = {};
query.year = Number(year);
query.month = Number(month);
query.material =this.query.material;
this.$refs.table.queryData(query)
},
//
//
handleSaveSuccess(data, mode) {
this.dialog.save = false;
this.$refs.table.refresh();
},
}
}
</script> </script>
<style scoped> <style scoped>
.treeMain {width: 100%;height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;} .treeMain {
width: 100%;
height: 280px;
overflow: auto;
border: 1px solid #dcdfe6;
margin-bottom: 10px;
}
</style> </style>

View File

@ -2,40 +2,108 @@
<el-container> <el-container>
<el-header> <el-header>
<div class="left-panel"> <div class="left-panel">
<el-button type="primary" icon="el-icon-plus" @click="table_add" v-auth="'mgroup.create'">新增</el-button> <el-button
type="primary"
icon="el-icon-plus"
@click="table_add"
v-auth="'mgroup.create'"
>新增</el-button
>
</div> </div>
<div class="right-panel"> <div class="right-panel">
<el-input style="margin-right: 5px;" v-model="query.search" placeholder="名称" clearable></el-input> <el-input
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button> style="margin-right: 5px"
v-model="query.search"
placeholder="名称"
clearable
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div> </div>
</el-header> </el-header>
<el-main class="nopadding"> <el-main class="nopadding">
<scTable ref="table" :apiObj="apiObj" row-key="id" hidePagination :params="params"> <scTable
<el-table-column label="#" type="index" width="50"></el-table-column> ref="table"
<el-table-column label="工段名称" prop="name" min-width="100"></el-table-column> :apiObj="apiObj"
row-key="id"
hidePagination
:params="params"
>
<el-table-column
label="#"
type="index"
width="50"
></el-table-column>
<el-table-column
label="工段名称"
prop="name"
min-width="100"
></el-table-column>
<el-table-column label="所在工序" prop="cate" min-width="100"> <el-table-column label="所在工序" prop="cate" min-width="100">
<template #default="scope"> <template #default="scope">
<span>{{ scope.row.process_cate }} - {{ scope.row.process_name }}</span> <span
>{{ scope.row.process_cate }} -
{{ scope.row.process_name }}</span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属部门" prop="belong_dept_name" min-width="150"></el-table-column> <el-table-column
<el-table-column label="班次规则" prop="shift_rule" min-width="80"></el-table-column> label="所属部门"
prop="belong_dept_name"
min-width="150"
></el-table-column>
<el-table-column
label="班次规则"
prop="shift_rule"
min-width="80"
></el-table-column>
<!-- <el-table-column label="能源监测" prop="need_enm" min-width="80"> <!-- <el-table-column label="能源监测" prop="need_enm" min-width="80">
<template #default="scope"> <template #default="scope">
<span v-if="scope.row.need_enm"></span> <span v-if="scope.row.need_enm"></span>
<span v-else></span> <span v-else></span>
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column label="排序" prop="sort" min-width="80"></el-table-column> <el-table-column
<el-table-column label="创建时间" prop="create_time" min-width="150"></el-table-column> label="排序"
<el-table-column label="操作" fixed="right" align="center" width="180"> prop="sort"
min-width="80"
></el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
min-width="150"
></el-table-column>
<el-table-column
label="操作"
fixed="right"
align="center"
width="180"
>
<template #default="scope"> <template #default="scope">
<el-button link size="small" @click="table_edit(scope.row)" v-auth="'mgroup.update'" <el-button
type="primary">编辑</el-button> link
size="small"
@click="table_edit(scope.row)"
v-auth="'mgroup.update'"
type="primary"
>编辑</el-button
>
<el-divider direction="vertical"></el-divider> <el-divider direction="vertical"></el-divider>
<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)"> <el-popconfirm
title="确定删除吗?"
@confirm="table_del(scope.row, scope.$index)"
>
<template #reference> <template #reference>
<el-button link size="small" v-auth="'mgroup.delete'" type="danger">删除</el-button> <el-button
link
size="small"
v-auth="'mgroup.delete'"
type="danger"
>删除</el-button
>
</template> </template>
</el-popconfirm> </el-popconfirm>
</template> </template>
@ -43,20 +111,25 @@
</scTable> </scTable>
</el-main> </el-main>
</el-container> </el-container>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" @closed="dialog.save = false"> <save-dialog
v-if="dialog.save"
ref="saveDialog"
@success="handleSaveSuccess"
@closed="dialog.save = false"
>
</save-dialog> </save-dialog>
</template> </template>
<script> <script>
import saveDialog from "./mgroup_form.vue"; import saveDialog from "./mgroup_form.vue";
export default { export default {
name: 'mgroup', name: "mgroup",
components: { components: {
saveDialog saveDialog,
}, },
data() { data() {
return { return {
apiObj: this.$API.mtm.mgroup.list, apiObj: this.$API.mtm.mgroup.list,
params: { 'cate': 'photon' }, params: { cate: "photon" },
query: {}, query: {},
dialog: { dialog: {
save: false, save: false,
@ -65,13 +138,12 @@ export default {
tableData: [], tableData: [],
selection: [], selection: [],
cates_: { cates_: {
'section': '工序', section: "工序",
'other': '其他', other: "其他",
}, },
} };
},
mounted() {
}, },
mounted() {},
methods: { methods: {
// //
table_add() { table_add() {
@ -87,15 +159,15 @@ export default {
this.$refs.saveDialog.open("edit").setData(row); this.$refs.saveDialog.open("edit").setData(row);
}); });
}, },
// //
async table_del(row) { async table_del(row) {
var id = row.id; var id = row.id;
var res = await this.$API.mtm.mgroup.delete.req(id); var res = await this.$API.mtm.mgroup.delete.req(id);
if (res.err_msg) { if (res.err_msg) {
this.$message.error(res.err_msg) this.$message.error(res.err_msg);
} else { } else {
this.$refs.table.refresh(); this.$refs.table.refresh();
this.$message.success("删除成功") this.$message.success("删除成功");
} }
}, },
// //
@ -104,7 +176,7 @@ export default {
}, },
// //
handleQuery() { handleQuery() {
this.$refs.table.queryData(this.query) this.$refs.table.queryData(this.query);
}, },
// //
// //
@ -112,8 +184,8 @@ export default {
this.dialog.save = true; this.dialog.save = true;
this.$refs.table.refresh(); this.$refs.table.refresh();
}, },
} },
} };
</script> </script>
<style scoped> <style scoped>
.treeMain { .treeMain {