主材利用率 油漆面 默认值

This commit is contained in:
xielue 2023-05-07 20:08:38 +08:00
parent 50081ba10c
commit 9729f7f107
9 changed files with 420 additions and 52 deletions

View File

@ -769,7 +769,7 @@ export default {
currentConfigName: "",
// ID
currentBeid: 0,
settignsValues : {},
tabKey: 'main',
showAll: false,
showExp: false,
@ -1109,7 +1109,7 @@ export default {
created() {
this.loadSettings();
// id
let dataId = this.getDataId();
@ -1185,6 +1185,33 @@ export default {
//
methods: {
loadSettings() {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/list`,
data: {
}
}).then(a => {
let data = {};
let getName = (info) => {
for (let name in info) {
return name;
}
return null;
}
a.data.settings.forEach(o => {
let name = getName(o.setting);
if (!name) return;
data[name] = o.setting[name];
});
this.settignsValues = data;
}).catch((a) => {
this.$mk.error(a.data.msg);
});
},
formatShowNumber(value, points) {
if (!value) {
return '<span style="color:red;">' + (0.0).toFixed(points || 0) + '</span>';
@ -1495,6 +1522,13 @@ export default {
row.height_formula = selectedData.spec;
}
}
if (!row.rate_materials && this.settignsValues.Main_material_utilization_rate) {
row.rate_materials = this.settignsValues.Main_material_utilization_rate;
}
if (!row.paint_number && this.settignsValues.Default_rate_of_paint_surface) {
row.paint_number = this.settignsValues.Default_rate_of_paint_surface;
}
},
fittings_onPopupSelected({ rows, name, params }) {
console.log(rows, name, params);

View File

@ -349,8 +349,21 @@ export default {
if (e.name == "add") { //
this.$openPage("/BathroomQuotation/BathroomQuotationAdd"); //
}
if (e.name == "setting") {
this.openSettings();
}
},
openSettings() {
this.$mk.dialog.open({
page: () => import("@/pages/Middle/bathroom/basic/settings.vue"),
title: "参数配置",
pageOptions: {
},
width: 800,
height: 600,
dataId: 0
});
},
//
pageEdit(row) {
if (!row) { //

View File

@ -681,6 +681,7 @@ export default {
currentConfigName: "",
// ID
currentBeid: 0,
settignsValues : {},
showType: '1',
showExp: false,
@ -880,6 +881,7 @@ export default {
created() {
this.loadSettings();
let data = this.item;
this.formOptions.data = data;
this.fittings_detailsData = data.fittingsList || [];
@ -898,6 +900,34 @@ export default {
},
//
methods: {
loadSettings() {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/list`,
data: {
}
}).then(a => {
let data = {};
let getName = (info) => {
for (let name in info) {
return name;
}
return null;
}
a.data.settings.forEach(o => {
let name = getName(o.setting);
if (!name) return;
data[name] = o.setting[name];
});
this.settignsValues = data;
}).catch((a) => {
this.$mk.error(a.data.msg);
});
},
formatShowNumber(value, points) {
if (!value) {
return '<span style="color:red;">'+(0.0).toFixed(points ||0)+'</span>';
@ -1049,6 +1079,12 @@ export default {
row.height_formula = selectedData.spec;
}
}
if (!row.rate_materials && this.settignsValues.Main_material_utilization_rate) {
row.rate_materials = this.settignsValues.Main_material_utilization_rate;
}
if (!row.paint_number && this.settignsValues.Default_rate_of_paint_surface) {
row.paint_number = this.settignsValues.Default_rate_of_paint_surface;
}
},
fittings_onPopupSelected({ rows, name, params }) {
console.log(rows, name, params);

View File

@ -96,15 +96,13 @@
</vxe-column>
<vxe-column field="parts" title="配件" width="260" :params="editorParts" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="spec" title="规格" width="120"
:edit-render="{ name: '$input' }"></vxe-column>
<vxe-column field="spec" title="规格" width="120" :edit-render="{ name: '$input' }"></vxe-column>
<vxe-column field="quantity" title="数量" width="120"
:edit-render="{ name: '$input', props: { type: 'integer' } }"></vxe-column>
<vxe-column field="price" title="单价" width="120"
:edit-render="{ name: '$input', props: { type: 'number' } }"></vxe-column>
<vxe-column field="amount_formula" title="金额(公式)" width="220"
:edit-render="{ name: 'EditExpressions' }">
<vxe-column field="amount_formula" title="金额(公式)" width="220" :edit-render="{ name: 'EditExpressions' }">
</vxe-column>
</vxe-table>
@ -218,7 +216,8 @@
<vxe-column field="labor" title="项目" width="260" :params="editorLabor" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="amount_formula" title="金额(公式)" width="220" :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="amount_formula" title="金额(公式)" width="220"
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
</vxe-table>
@ -235,7 +234,8 @@
<a-collapse-panel key="1" header="材料">
<vxe-table border show-overflow keep-source ref="paintMaterial_xTable" :data="paintMaterial_detailsData" :keyboard-config="{
<vxe-table border show-overflow keep-source ref="paintMaterial_xTable" :data="paintMaterial_detailsData"
:keyboard-config="{
isArrow: true, isDel: true,
isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="paintMaterial_onPulldownSelected"
@ -269,7 +269,8 @@
</a-collapse-panel>
<a-collapse-panel key="2" header="人工" :disabled="false">
<vxe-table border show-overflow keep-source ref="paintLabor_xTable" :data="paintLabor_detailsData" :keyboard-config="{
<vxe-table border show-overflow keep-source ref="paintLabor_xTable" :data="paintLabor_detailsData"
:keyboard-config="{
isArrow: true, isDel: true,
isEnter: false, isTab: true, isEdit: true, isChecked: true
}" :mouse-config="{ selected: true }" @pulldownSelected="paintLabor_onPulldownSelected"
@ -291,7 +292,8 @@
<vxe-column field="labor" title="项目" width="260" :params="editorLabor" formatter="formatRef"
:edit-render="{ name: 'MkGridDataSelector' }"></vxe-column>
<vxe-column field="amount_formula" title="金额(公式)" width="220" :edit-render="{ name: 'EditExpressions' }"></vxe-column>
<vxe-column field="amount_formula" title="金额(公式)" width="220"
:edit-render="{ name: 'EditExpressions' }"></vxe-column>
</vxe-table>
@ -352,7 +354,7 @@ export default {
currentConfigName: "",
// ID
currentBeid: 0,
settignsValues : {},
groupbox1_activeKey: ["1", "2"],
groupbox2_activeKey: [],
groupbox3_activeKey: [],
@ -661,8 +663,7 @@ export default {
},
created() {
this.loadSettings();
// id
let dataId = this.getDataId();
@ -732,7 +733,32 @@ export default {
methods: {
loadSettings() {
this.$mk.post({
url: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/list`,
data: {
}
}).then(a => {
let data = {};
let getName = (info) => {
for (let name in info) {
return name;
}
return null;
}
a.data.settings.forEach(o => {
let name = getName(o.setting);
if (!name) return;
data[name] = o.setting[name];
});
this.settignsValues = data;
}).catch((a) => {
this.$mk.error(a.data.msg);
});
},
@ -805,6 +831,9 @@ export default {
}
}
if (column.field == "paint_material") {
this.resetPaintMaterial();
}
@ -816,6 +845,12 @@ export default {
}
}
if (!row.rate_materials && this.settignsValues.Main_material_utilization_rate) {
row.rate_materials = this.settignsValues.Main_material_utilization_rate;
}
if (!row.paint_number && this.settignsValues.Default_rate_of_paint_surface) {
row.paint_number = this.settignsValues.Default_rate_of_paint_surface;
}
},
fittings_onPopupSelected({ rows, name, params }) {
console.log(rows, name, params);
@ -826,6 +861,8 @@ export default {
},
fittings_afterEditEvent({ column, row }) {
console.log(row, column);
},
fittings_beforeEditEvent({ column, row }) {
console.log(row, column);

View File

@ -303,8 +303,21 @@ export default {
if (e.name == "add") { //
this.$openPage("/BathroomScheme/BathroomSchemeAdd"); //
}
if (e.name == "setting") {
this.openSettings();
}
},
openSettings() {
this.$mk.dialog.open({
page: () => import("@/pages/Middle/bathroom/basic/settings.vue"),
title: "参数配置",
pageOptions: {
},
width: 800,
height: 600,
dataId: 0
});
},
//
pageEdit(row) {
if (!row) { //

View File

@ -0,0 +1,181 @@
<template>
<div class="page-body router-edit-page">
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
</vxe-form>
<div class="footerbar-bottom">
<a-button type="primary" @click="ok">确定</a-button>
</div>
</div>
</template>
<script>
import BASE_URL from '@/services/base/api.js';
export default {
props: {
pageMode: {
type: String,
default: "edit"
},
pageOptions: {
type: Object
},
dataId: {
}
},
data() {
//
var pageData = {
actions: {
save: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/update`,
get: `${BASE_URL.BASE_URL}/BathroomScheme/v1/settings/list`
},
beid: 0,
parentName: '',
formOptions: {
data: {
},
titleWidth: 200,
titleAlign: 'right',
rules: {
},
items: [
]
},
};
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
created() {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: {
}
}).then(a => {
let items = [];
let data = {};
let getName = (info) => {
for (let name in info) {
return name;
}
return null;
}
a.data.settings.forEach(o => {
let name = getName(o.setting);
if (!name) return;
let item = { field: name, title: o.title, span: 24, itemRender: { name: '$input', props: { placeholder: o.desc } } };
if (o.type == "bool") {
item.itemRender.name = "$switch";
item.dataRule = { type: "string" };
data[name] = o.setting[name] === "true";
}
else if (o.type == "integer") {
item.itemRender.props.type = "integer";
item.dataRule = { type: "integer" };
data[name] = parseInt(o.setting[name]);
}
else {
data[name] = o.setting[name];
}
items.push(item);
});
this.formOptions.items = items;
this.formOptions.data = data;
}).catch((a) => {
this.$mk.error(a.data.msg);
});
},
//
methods: {
ok() {
let save = () => {
let action = this.actions.save;
let postdata = Object.assign({}, this.formOptions.data);
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
let saveData = {
"settings": [
postdata
]
};
this.$mk.post({
url: action,
loading: "保存中...",
data: saveData,
}).then(() => {
this.$mk.success("保存成功");
}).catch((a) => {
this.$mk.error(a.data.msg);
});
};
this.$refs.xForm.validate((a) => {
if (a) {
let count = 0;
for (let name in a) {
a[name];
count++;
}
this.$mk.error(`存在${count}项错误,请检查`);
} else {
save();
}
});
},
cancel() {
this.$emit("callback", {});
},
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.router-edit-page .vxe-pulldown {
width: 100%;
}
</style>

View File

@ -0,0 +1,51 @@
// 视图组件
const view = {
tabs: () => import('@/layouts/tabs'),
blank: () => import('@/layouts/BlankView'),
page: () => import('@/layouts/PageView')
}
// 路由组件注册
const routerMap = {
};
routerMap['basic']= {
name: 'basic',
icon: 'idcard',
component: view.blank,
meta: {
},
authority: {
permission: [],
}
};
routerMap['basic_materials']= {
name: '基础档案',
icon: 'idcard',
path: `/MesMaterials/MesMaterialsList`,
meta:{
page:{ cacheAble:false}
},
component: () => import(`@/pages/Middle/Mes/MesMaterials/MesMaterials/List`),
authority: {
permission: [],
}
};
routerMap['basic_unit']= {
name: '基础档案',
icon: 'idcard',
path: `/MesUnit/MesUnitList`,
meta:{
page:{ cacheAble:false}
},
component: () => import(`@/pages/Middle/Mes/MesUnit/MesUnit/List`),
authority: {
permission: [],
}
};
export default {}

View File

@ -17,6 +17,8 @@ import MesWarehouse from '@/router/Middle/Mes/MesWarehouse/router.map.js'
import MesEnum from '@/router/Middle/Mes/MesEnum/router.map.js'
import MesUnitRouterMap from '@/router/Middle/Mes/MesUnit/router.map.js'
import basic from '@/router/Middle/Mes/basic/router.map.js'
const routerMap = Object.assign({},
MesUnitRouterMap,
MesCeramicsMaterialClassification,
@ -30,7 +32,9 @@ const routerMap = Object.assign({},
MesStaff,
MesStock,
MesWarehouse,
MesEnum
MesEnum,
basic
)

View File

@ -15,7 +15,6 @@ const routesConfig = [
path: '/403',
name: '403'
},
]
const options = {
routes: parseRoutes(routesConfig, routerMap)