|
@@ -21,16 +21,6 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="单元号" prop="unitNumber">
|
|
|
- <el-select v-model="queryParams.unitNumber" placeholder="请选择单元号" clearable size="small">
|
|
|
- <el-option
|
|
|
- v-for="dict in unitNumberOptions"
|
|
|
- :key="dict.dictValue"
|
|
|
- :label="dict.dictLabel"
|
|
|
- :value="parseInt(dict.dictValue)"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
<el-form-item label="楼层位置" prop="floorLocation">
|
|
|
<el-select v-model="queryParams.floorLocation" placeholder="请选择楼层位置" clearable size="small">
|
|
|
<el-option
|
|
@@ -89,7 +79,7 @@
|
|
|
size="mini"
|
|
|
@click="handleAdd"
|
|
|
v-hasPermi="['invoice:bookingworkticket:add']"
|
|
|
- >预约</el-button>
|
|
|
+ >新增</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
@@ -123,29 +113,30 @@
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table v-loading="loading" :data="bookingworkticketList" @selection-change="handleSelectionChange" :height="clientHeight" border>
|
|
|
+ <el-table v-loading="loading" :data="bookingworkticketList" :span-method="mergeMethod" @selection-change="handleSelectionChange" :height="clientHeight" border>
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column label="作业单位" align="center" prop="workUnit" :formatter="workUnitFormat"/>
|
|
|
- <el-table-column label="作业区域" align="center" prop="workArea" :formatter="workAreaFormat"/>
|
|
|
- <el-table-column label="单元号" align="center" prop="unitNumber" :formatter="unitNumberFormat"/>
|
|
|
- <el-table-column label="楼层位置" align="center" prop="floorLocation" :formatter="floorLocationFormat"/>
|
|
|
+ <el-table-column label="作业单位" align="center" prop="bookingworkticket.workUnit" :formatter="workUnitFormat"/>
|
|
|
+ <el-table-column label="作业区域单元" align="center" prop="bookingworkticket.workArea" :formatter="workAreaFormat"/>
|
|
|
+ <el-table-column label="楼层位置" align="center" prop="bookingworkticket.floorLocation" :formatter="floorLocationFormat"/>
|
|
|
<el-table-column label=" 作业开始时间" align="center" prop="workStartTime" width="100">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.workStartTime, '{y}-{m}-{d}') }}</span>
|
|
|
+ <span>{{ parseTime(scope.row.bookingworkticket.workStartTime, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="作业结束时间" align="center" prop="workEndTime" width="100">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{ parseTime(scope.row.workEndTime, '{y}-{m}-{d}') }}</span>
|
|
|
+ <span>{{ parseTime(scope.row.bookingworkticket.workEndTime, '{y}-{m}-{d}') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <el-table-column label="联系人" align="center" prop="contact" :show-overflow-tooltip="true"/>
|
|
|
- <el-table-column label="联系方式" align="center" prop="phonenumber" :show-overflow-tooltip="true"/>
|
|
|
- <el-table-column label="状态" align="center" prop="status" width="100" :formatter="statusFormat" />
|
|
|
+
|
|
|
+ <el-table-column label="作业类型" align="center" prop="workType" :formatter="workTypeFormat"/>
|
|
|
+ <el-table-column label="风险等级" align="center" prop="riskLevel" :formatter="riskLevelFormat"/>
|
|
|
+ <el-table-column label="作业内容描述" align="center" prop="workDescription" :show-overflow-tooltip="true"/>
|
|
|
+ <el-table-column label="作业人员数" align="center" prop="workPeopleNumber" :show-overflow-tooltip="true"/>
|
|
|
+ <el-table-column label="预计作业时间" align="center" prop="estimateWorktime" :show-overflow-tooltip="true"/>
|
|
|
+ <el-table-column label="联系人" align="center" prop="bookingworkticket.contact" :show-overflow-tooltip="true"/>
|
|
|
+ <el-table-column label="联系方式" align="center" prop="bookingworkticket.phonenumber" :show-overflow-tooltip="true"/>
|
|
|
+ <el-table-column label="状态" align="center" prop="bookingworkticket.status" width="100" :formatter="statusFormat" />
|
|
|
<el-table-column label="操作" align="center" fixed="right" width="200" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
@@ -225,16 +216,6 @@
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="单元号" prop="unitNumber">
|
|
|
- <el-select v-model="form.unitNumber" placeholder="请选择单元号">
|
|
|
- <el-option
|
|
|
- v-for="dict in unitNumberOptions"
|
|
|
- :key="dict.dictValue"
|
|
|
- :label="dict.dictLabel"
|
|
|
- :value="parseInt(dict.dictValue)"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="楼层位置" prop="floorLocation">
|
|
@@ -298,13 +279,13 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
-
|
|
|
+
|
|
|
<el-form v-for="(ruleForm, index) in ruleForm" :key="index" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
|
|
|
<el-divider><i class="el-icon-more" style="color:green;font-size:100%"></i><i class="el-icon-more" style="color:green;font-size:100%"></i> <span ><font color="green">关联的作业内容</font></span>
|
|
|
<i class="el-icon-more" style="color:green;font-size:100%"></i><i class="el-icon-more" style="color:green;font-size:100%"></i></el-divider>
|
|
|
<el-form-item label="作业内容描述" prop="workDescription">
|
|
|
<el-input v-model="ruleForm.workDescription"></el-input>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="作业类型" prop="workType">
|
|
@@ -338,23 +319,13 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="监护人单位" prop="guardianUnit">
|
|
|
- <el-select v-model="ruleForm.guardianUnit" placeholder="请选择监护人单位" clearable size="small">
|
|
|
- <el-option
|
|
|
- v-for="dict in guardianUnitOptions"
|
|
|
- :key="dict.dictValue"
|
|
|
- :label="dict.dictLabel"
|
|
|
- :value="parseInt(dict.dictValue)"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="预计作业时间" prop="estimateWorktime">
|
|
|
+ <el-input v-model="ruleForm.estimateWorktime" style="width: 190px"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <el-form-item label="预计作业时间" prop="estimateWorktime">
|
|
|
- <el-input v-model="ruleForm.estimateWorktime" style="width: 190px"></el-input>
|
|
|
- </el-form-item>
|
|
|
</el-form>
|
|
|
-
|
|
|
+
|
|
|
<el-button @click="resetForm1()">重置</el-button>
|
|
|
<el-button @click="add">+</el-button>
|
|
|
<el-button @click="reduce" :disabled="flag">-</el-button>
|
|
@@ -456,7 +427,7 @@ export default {
|
|
|
riskLevelOptions: [],
|
|
|
// 监护人单位字典
|
|
|
guardianUnitOptions: [],
|
|
|
-
|
|
|
+
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
// 用户导入参数
|
|
@@ -553,7 +524,7 @@ export default {
|
|
|
this.getDicts("book_guardian_unit").then(response => {
|
|
|
this.guardianUnitOptions = response.data;
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
methods: {
|
|
|
// 表单添加一行
|
|
@@ -587,15 +558,18 @@ export default {
|
|
|
this.loading = true;
|
|
|
listBookingworkticket(this.queryParams).then(response => {
|
|
|
this.bookingworkticketList=response.rows;
|
|
|
- for (let i = 0; i < this.bookingworkticketList.length; i++) {
|
|
|
- if( this.bookingworkticketList[i].tInvoiceWorkcontentList) {
|
|
|
- this.tInvoiceWorkcontentList = this.bookingworkticketList[i].tInvoiceWorkcontentList
|
|
|
- }
|
|
|
- }
|
|
|
- this.tInvoiceWorkcontentList.tabletou=this.tabletou;
|
|
|
- this.total = response.total;
|
|
|
- this.loading = false;
|
|
|
- console.log(this.tInvoiceWorkcontentList)
|
|
|
+ for(let i = 0; i < this.bookingworkticketList.length; i++) {
|
|
|
+ Object.assign(this.bookingworkticketList[i],{workUnit:this.bookingworkticketList[i].bookingworkticket.workUnit}
|
|
|
+ ,{workArea:this.bookingworkticketList[i].bookingworkticket.workArea}
|
|
|
+ ,{floorLocation:this.bookingworkticketList[i].bookingworkticket.floorLocation}
|
|
|
+ ,{contact:this.bookingworkticketList[i].bookingworkticket.contact}
|
|
|
+ ,{phonenumber:this.bookingworkticketList[i].bookingworkticket.phonenumber}
|
|
|
+ ,{status:this.bookingworkticketList[i].bookingworkticket.status});
|
|
|
+
|
|
|
+ }
|
|
|
+ console.log(this.bookingworkticketList)
|
|
|
+ this.total = response.total;
|
|
|
+ this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
/** 查询部门下拉树结构 */
|
|
@@ -614,7 +588,7 @@ export default {
|
|
|
},
|
|
|
// 字典翻译
|
|
|
workAreaFormat(row, column) {
|
|
|
- return this.selectDictLabel(this.workAreaOptions, row.workArea);
|
|
|
+ return this.selectDictLabel(this.workAreaOptions, row.bookingworkticket.workArea);
|
|
|
},
|
|
|
// 字典翻译
|
|
|
unitNumberFormat(row, column) {
|
|
@@ -686,7 +660,7 @@ export default {
|
|
|
},
|
|
|
// 多选框选中数据
|
|
|
handleSelectionChange(selection) {
|
|
|
- this.ids = selection.map(item => item.id)
|
|
|
+ this.ids = selection.map(item => item.bookingticketId)
|
|
|
this.single = selection.length!==1
|
|
|
this.multiple = !selection.length
|
|
|
},
|
|
@@ -695,16 +669,15 @@ export default {
|
|
|
this.reset();
|
|
|
this.resetForm1();
|
|
|
var roles =this.$store.state.user.roles
|
|
|
-
|
|
|
this.open = true;
|
|
|
this.title = "添加预约作业票台账";
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
/** 修改按钮操作 */
|
|
|
handleUpdate(row) {
|
|
|
this.reset();
|
|
|
- const id = row.id || this.ids
|
|
|
+ // console.log(row)
|
|
|
+ const id = row.bookingticketId || this.ids
|
|
|
getBookingworkticket(id).then(response => {
|
|
|
this.form = response.data;
|
|
|
this.open = true;
|
|
@@ -719,7 +692,7 @@ export default {
|
|
|
if (this.form.id != null) {
|
|
|
this.form.tInvoiceWorkcontentList=this.ruleForm
|
|
|
updateBookingworkticket(this.form).then(response => {
|
|
|
-
|
|
|
+
|
|
|
this.msgSuccess("修改成功");
|
|
|
this.open = false;
|
|
|
this.getList();
|
|
@@ -733,16 +706,16 @@ export default {
|
|
|
this.getList();
|
|
|
this.resetForm1();
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
|
- const ids = row.id || this.ids;
|
|
|
+ const ids = row.bookingticketId || this.ids;
|
|
|
this.$confirm('是否确认删除?', "警告", {
|
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
@@ -799,7 +772,68 @@ export default {
|
|
|
console.log(this.$store.state.user)
|
|
|
var userName = this.$store.state.user.roles;
|
|
|
this.msgSuccess(userName);
|
|
|
- }
|
|
|
+ },
|
|
|
+ //合并单元格
|
|
|
+ mergeMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
+ // console.log(row)
|
|
|
+ // console.log(column)
|
|
|
+ if (columnIndex === 1) {
|
|
|
+ const _row = this.setTable(this.bookingworkticketList).merge[rowIndex];
|
|
|
+ const _col = _row > 0 ? 1 : 0;
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ };
|
|
|
+ }
|
|
|
+ if (columnIndex === 11) {
|
|
|
+ const _row = this.setTable(this.bookingworkticketList).merge[rowIndex];
|
|
|
+ const _col = _row > 0 ? 1 : 0;
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ };
|
|
|
+ }
|
|
|
+ if (columnIndex === 12) {
|
|
|
+ const _row = this.setTable(this.bookingworkticketList).merge[rowIndex];
|
|
|
+ const _col = _row > 0 ? 1 : 0;
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ };
|
|
|
+ }
|
|
|
+ if (columnIndex === 13) {
|
|
|
+ const _row = this.setTable(this.bookingworkticketList).merge[rowIndex];
|
|
|
+ const _col = _row > 0 ? 1 : 0;
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ setTable(tableData) {
|
|
|
+ let spanArr = [],
|
|
|
+ concat = 0;
|
|
|
+ tableData.forEach((item, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ spanArr.push(1);
|
|
|
+ } else {
|
|
|
+ console.log(item)
|
|
|
+ if (item.bookingticketId === tableData[index - 1].bookingticketId) {
|
|
|
+ //第一列需合并相同内容的判断条件
|
|
|
+ spanArr[concat] += 1;
|
|
|
+ spanArr.push(0);
|
|
|
+ } else {
|
|
|
+ spanArr.push(1);
|
|
|
+ concat = index;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return {
|
|
|
+ merge: spanArr
|
|
|
+ };
|
|
|
+ },
|
|
|
}
|
|
|
};
|
|
|
</script>
|