|
@@ -198,7 +198,6 @@
|
|
|
</el-row>
|
|
|
<div style="width: 25%; float: right">
|
|
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
|
|
|
- <el-button type="primary" @click="toNodeDetail">填写施工信息</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-form>
|
|
@@ -206,7 +205,6 @@
|
|
|
<!-- 施工信息dialog -->
|
|
|
<el-dialog :visible.sync="nodeDetailVisible" title="施工信息" append-to-body customClass="appendElNodeDialog"
|
|
|
width="70% !important">
|
|
|
- <!-- 节点表单 -->
|
|
|
<el-form ref="nodeForm" :model="zEngineeringNodeBo.zEngineeringInfoBo" :rules="nodeRules" label-width="200px">
|
|
|
<el-form-item label="施工时间" prop="constructTime">
|
|
|
<el-date-picker
|
|
@@ -217,10 +215,6 @@
|
|
|
placeholder="请选择施工时间">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="施工人" prop="constructUser" v-if="form.id">
|
|
|
- <el-input v-model="zEngineeringNodeBo.zEngineeringInfoBo.constructUser" placeholder="请填写施工人"
|
|
|
- maxlength="20" disabled></el-input>
|
|
|
- </el-form-item>
|
|
|
<el-row>
|
|
|
<el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
|
|
|
<ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
|
|
@@ -228,25 +222,15 @@
|
|
|
@input="getUrl"></ObsImageUpload>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
- <div style="width: 25%; float: right">
|
|
|
- <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
|
|
|
- <el-button @click="nodeCancel">取 消</el-button>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
- </el-dialog>
|
|
|
- <!-- 用料信息dialog -->
|
|
|
- <el-dialog :visible.sync="MaterVisible" title="用料信息" >
|
|
|
- <el-form ref="MaterForm">
|
|
|
<el-row v-for="(item, index) in zEngineeringMaterialBo" :key="index">
|
|
|
- <el-col :span="6">
|
|
|
+ <el-col :span="7">
|
|
|
<el-form-item
|
|
|
- :prop="`zEngineeringMaterialBo.${index}.materialQuality`"
|
|
|
- :rules="{ required:true, validator: validateState, trigger: 'blur', index:index }"
|
|
|
- label-width="50px"
|
|
|
+ :prop="`${item.id}.materialQuality`"
|
|
|
+ style="margin-left: 120px"
|
|
|
+ label-width="auto"
|
|
|
label="材质"
|
|
|
- style="margin-right: 15px"
|
|
|
>
|
|
|
- <el-select v-model="item.materialQuality" placeholder="请选择材质"
|
|
|
+ <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 70%"
|
|
|
@change="getEnginSpecificationsList(item, index)">
|
|
|
<el-option
|
|
|
v-for="e in materialQualityList"
|
|
@@ -257,15 +241,14 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="6">
|
|
|
+ <el-col :span="7">
|
|
|
<el-form-item
|
|
|
- :prop="`zEngineeringMaterialBo.${index}.specifications`"
|
|
|
- :rules="{ required:true, validator: validateSize, trigger: 'blur', index:index }"
|
|
|
- label-width="50px"
|
|
|
- style="margin-right: 15px"
|
|
|
+ :prop="`${item.id}.specifications`"
|
|
|
+ style="margin-left: 80px"
|
|
|
+ label-width="auto"
|
|
|
label="规格"
|
|
|
>
|
|
|
- <el-select v-model="item.specifications" placeholder="请选择规格" >
|
|
|
+ <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 70%">
|
|
|
<el-option
|
|
|
v-for="e in zEngineeringMaterialBo.specifications"
|
|
|
:key="e.id"
|
|
@@ -275,39 +258,37 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="6">
|
|
|
+ <el-col :span="7">
|
|
|
<el-form-item
|
|
|
- :prop="`zEngineeringMaterialBo.${index}.number`"
|
|
|
- :rules="{ required:true, validator: validateNumber, trigger: 'blur', index:index }"
|
|
|
- label-width="50px"
|
|
|
- style="margin-right: 15px"
|
|
|
+ :prop="`${item.id}.number`"
|
|
|
+ style="margin-left: 40px"
|
|
|
+ label-width="auto"
|
|
|
label="数量"
|
|
|
>
|
|
|
- <el-input v-model="item.number" placeholder="请输入数量" maxlength="8" type="number"/>
|
|
|
+ <div class="block" style="display: inline-block; margin-right: 20px;">
|
|
|
+ <el-input v-model="item.number" placeholder="请输入数量" style="width: 100%" maxlength="8"/>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="3">
|
|
|
- <el-form-item style="margin-left: 100px">
|
|
|
- <el-button v-if="zEngineeringMaterialBo.length > 1" @click="removezEngineeringMaterialBo(index)" type="danger">
|
|
|
+ <el-form-item style="margin-left: -120px;">
|
|
|
+ <el-button v-if="zEngineeringMaterialBo.length > 1" @click="removezEngineeringMaterialBo(index)">
|
|
|
删除
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <div style="text-align: right;">
|
|
|
- <el-button
|
|
|
- @click="addzEngineeringMaterialBo"
|
|
|
- >新增用料信息
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" @click="updateMaterBo">
|
|
|
- 提交
|
|
|
- </el-button>
|
|
|
+ <div style="width: 25%; float: right">
|
|
|
+ <el-button @click="addzEngineeringMaterialBo">新增用料信息</el-button>
|
|
|
+ <el-button :loading="buttonLoading" type="primary" @click="updateMaterBo">提交</el-button>
|
|
|
+ <el-button @click="nodeCancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-form>
|
|
|
</el-dialog>
|
|
|
<ConstructionDetails
|
|
|
ref="ConstructionDetails"
|
|
|
:currentCollapses="currentCollapses"
|
|
|
+ @updateNodeOption = "updateNodeOption"
|
|
|
/>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -369,6 +350,7 @@ export default {
|
|
|
comprehensiveList: [],
|
|
|
// 弹出层标题
|
|
|
title: "",
|
|
|
+ gc: true,
|
|
|
nodeList: [],
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
@@ -480,10 +462,10 @@ export default {
|
|
|
// 节点规则校验
|
|
|
nodeRules: {
|
|
|
constructTime: [
|
|
|
- {required: true, message: "施工时间不能为空", trigger: ['change','blur']}
|
|
|
+ {required: true, message: "施工时间不能为空", trigger: ['change', 'blur']}
|
|
|
],
|
|
|
zEngiineeringPhotoBoList: [
|
|
|
- {required: true, message: "图片不能为空", trigger: ['change','blur'], validator: validatePicPass}
|
|
|
+ {required: true, message: "图片不能为空", trigger: ['change', 'blur'], validator: validatePicPass}
|
|
|
],
|
|
|
},
|
|
|
currentType: null, // 附件组件类型 put修改 add新增
|
|
@@ -505,6 +487,8 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
validateState(rule, value, callback) {
|
|
|
+ console.log(rule)
|
|
|
+ console.log(value)
|
|
|
return new Promise((resolve, reject) => {
|
|
|
if (value !== null && value !== undefined && value !== '' && value !== 0) {
|
|
|
resolve(true)
|
|
@@ -514,7 +498,10 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
validateSize(rule, value, callback) {
|
|
|
+ console.log(value)
|
|
|
return new Promise((resolve, reject) => {
|
|
|
+ const value = this.zEngineeringMaterialBo[rule.index].specifications
|
|
|
+ console.log(value)
|
|
|
if (value !== null && value !== undefined && value !== '' && value !== 0) {
|
|
|
resolve(true)
|
|
|
} else {
|
|
@@ -522,17 +509,24 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- validateNumber(rule, value, callback,index) {
|
|
|
+ validateNumber(rule, value, callback) {
|
|
|
+ console.log(value)
|
|
|
return new Promise((resolve, reject) => {
|
|
|
const value = this.zEngineeringMaterialBo[rule.index].number
|
|
|
// 至少有一个图片、一个用料信息、一个创建时间
|
|
|
- if(value){
|
|
|
+ if (value) {
|
|
|
resolve(true)
|
|
|
- }else{
|
|
|
- return callback(new Error('数量不能为空'))
|
|
|
+ } else {
|
|
|
+ return reject(new Error('数量不能为空'))
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ updateNodeOption(value){
|
|
|
+ UpdateEngineeIndustry(value).then(res => {
|
|
|
+ this.$modal.msgSuccess("修改成功");
|
|
|
+ this.getList();
|
|
|
+ })
|
|
|
+ },
|
|
|
// 根据所选材质获取对应规格
|
|
|
getEnginSpecificationsList(item, index) {
|
|
|
this.zEngineeringMaterialBo[index].specifications = null
|
|
@@ -542,23 +536,45 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
//添加用料信息
|
|
|
- addzEngineeringMaterBo(row){
|
|
|
+ addzEngineeringMaterBo(row) {
|
|
|
const id = row.id
|
|
|
putEngineeEngineeIndustry(id).then(response => {
|
|
|
this.loading = false;
|
|
|
this.form = response.data
|
|
|
- this.form.zEngineeringNodeBo = response.data.zEngineeringNodeBoList[0]
|
|
|
- this.form.zEngineeringNodeBo.zEngineeringInfoBo = response.data.zEngineeringNodeBoList[0].zEngineeringInfoBoList[0]
|
|
|
- this.zEngineeringMaterialBo = response.data.zEngineeringNodeBoList[0].zEngineeringInfoBoList[0].zEngineeringMaterialBo
|
|
|
- this.MaterVisible = true;
|
|
|
+ this.form.zEngineeringNodeBo = []
|
|
|
+ this.nodeDetailVisible = true;
|
|
|
});
|
|
|
},
|
|
|
- updateMaterBo(){
|
|
|
+ updateMaterBo() {
|
|
|
this.form.files = this.form.pics
|
|
|
- this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
|
|
|
- UpdateEngineeIndustry(this.form).then(res => {
|
|
|
- this.MaterVisible = false
|
|
|
- })
|
|
|
+ this.form.zEngineeringNodeBo = []
|
|
|
+ if (this.zEngineeringMaterialBo.length > 0) {
|
|
|
+ let valid = true;
|
|
|
+ if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == null) {
|
|
|
+ valid = false;
|
|
|
+ }
|
|
|
+ if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == null) {
|
|
|
+ valid = false;
|
|
|
+ }
|
|
|
+ if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == null) {
|
|
|
+ valid = false;
|
|
|
+ }
|
|
|
+ if (valid) {
|
|
|
+ this.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
|
|
|
+ this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
|
|
|
+ this.$refs.nodeForm.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ EditEngineeEngineeIndustry(this.form).then(res => {
|
|
|
+ this.nodeDetailVisible = false
|
|
|
+ this.$modal.msgSuccess("新增成功");
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message.warning('完善信息!')
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
//新增用料信息
|
|
|
addzEngineeringMaterialBo() {
|
|
@@ -613,6 +629,7 @@ export default {
|
|
|
},
|
|
|
nodeCancel() {
|
|
|
this.nodeDetailVisible = false
|
|
|
+ this.reset()
|
|
|
},
|
|
|
// 填写施工信息
|
|
|
toNodeDetail() {
|
|
@@ -654,8 +671,8 @@ export default {
|
|
|
}
|
|
|
this.form.zEngineeringNodeBo = {}
|
|
|
this.form.zEngineeringNodeBo.zEngineeringInfoBo = {}
|
|
|
- this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = []
|
|
|
- this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.push({
|
|
|
+ this.zEngineeringMaterialBo = []
|
|
|
+ this.zEngineeringMaterialBo.push({
|
|
|
materialQuality: '', // 用料材质
|
|
|
specifications: '', // 用料规格
|
|
|
number: '' // 用料数量
|
|
@@ -681,17 +698,19 @@ export default {
|
|
|
/** 新增按钮操作 */
|
|
|
handleAdd() {
|
|
|
this.reset();
|
|
|
+ this.gc = true
|
|
|
this.title = (this.form.type === '1' ? "新增工业工程" : "新增市政工程");
|
|
|
this.currentType = 'add'
|
|
|
this.open = true;
|
|
|
},
|
|
|
- removeFile(val){
|
|
|
+ removeFile(val) {
|
|
|
console.log(val)
|
|
|
console.log("我是文件")
|
|
|
this.form.files = val
|
|
|
},
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
+ this.gc = false
|
|
|
this.loading = true;
|
|
|
this.reset();
|
|
|
const id = row.id || this.ids
|