flx:包头新增施工管理
This commit is contained in:
parent
23ff4dc607
commit
3c9253155c
BIN
src/assets/images/tableIcon/qrcode.png
Normal file
BIN
src/assets/images/tableIcon/qrcode.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 309 B |
@ -604,6 +604,21 @@ const routes2 = [{
|
||||
component: () =>
|
||||
import ("@/views/projectFront/laborManage/personnelAnalysis.vue"),
|
||||
},
|
||||
// 施工管理
|
||||
//施工管理--装置管理
|
||||
{
|
||||
path: "/project/constructionManage/deviceManage",
|
||||
name: "施工管理_装置管理",
|
||||
component: () =>
|
||||
import ("@/views/projectFront/constructionManage/deviceManage.vue"),
|
||||
},
|
||||
//施工管理--方案台账
|
||||
{
|
||||
path: "/project/constructionManage/schemeLedger",
|
||||
name: "施工管理_方案台账",
|
||||
component: () =>
|
||||
import ("@/views/projectFront/constructionManage/schemeLedger.vue"),
|
||||
},
|
||||
//核酸超时人员列表
|
||||
{
|
||||
path: "/project/labor/nucleicAcidOvertimePersonnel",
|
||||
|
||||
@ -63,7 +63,7 @@ export default new Vuex.Store({
|
||||
CONTRACTORURL: process.env.NODE_ENV == "development" ? "http://192.168.34.175:5173/#/contractorApply" : `${window.location.protocol}//${window.location.host}/contractorApply/index.html#/contractorApply`, //罗峰承包商入场地址(本地)
|
||||
// UPLOADURL:'http://182.90.224.237:51234/upload/image/',// 郭圣雄远程
|
||||
// FILEURL:'http://182.90.224.237:51234/image/',//郭圣雄远程
|
||||
UPLOADURL: 'http://42.180.188.17:11211/upload/image', //测试
|
||||
// UPLOADURL: 'http://42.180.188.17:11211/upload/image', //测试
|
||||
// FILEURL: 'http://42.180.188.17:11211/image/', //测试
|
||||
// BASEURL: baseUrl ?
|
||||
// baseUrl : window.location.protocol + "//" + window.location.host + "/", //正式环境
|
||||
|
||||
400
src/views/projectFront/constructionManage/deviceManage.vue
Normal file
400
src/views/projectFront/constructionManage/deviceManage.vue
Normal file
@ -0,0 +1,400 @@
|
||||
<template>
|
||||
<div class="fullHeight">
|
||||
<div class="searchBox whiteBlock">
|
||||
<el-form
|
||||
:inline="true"
|
||||
size="medium"
|
||||
:model="searchForm"
|
||||
ref="searchForm"
|
||||
>
|
||||
<el-form-item label="装置/单元工程" prop="workerName">
|
||||
<el-input
|
||||
v-model="searchForm.workerName"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- v-permission="{key: 'renovate', menuPath: '/project/constructionManage/deviceManage'}" -->
|
||||
<el-button type="primary" plain @click="loadCardData">
|
||||
{{ $t("message.personnelPosition.beaconManage.query") }}
|
||||
</el-button>
|
||||
<el-button type="warning" plain @click="resetForm">
|
||||
{{ $t("message.personnelPosition.beaconManage.refresh") }}
|
||||
</el-button>
|
||||
<el-button type="primary" @click="addPoint">
|
||||
{{ $t("message.laborDev.add2") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="table_wrap whiteBlock">
|
||||
<el-table class="tables" :data="pointList">
|
||||
<el-table-column
|
||||
type="index"
|
||||
width="50"
|
||||
align="center"
|
||||
:label="$t('message.personnelPosition.beaconManage.table.index')"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="workerName"
|
||||
label="装置/单元工程"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="addTime"
|
||||
label="装置/单元号"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="addTime"
|
||||
label="项目组"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="addTime"
|
||||
label="EPC承包商"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="addReason"
|
||||
label="施工承包商"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('message.personnelPosition.beaconManage.table.operation')"
|
||||
align="center"
|
||||
width="250"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div class="tableBtns">
|
||||
<div
|
||||
@click="editPoint(scope.row)"
|
||||
class="operationText"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/icon-edit.png"
|
||||
width="15px"
|
||||
height="15px"
|
||||
/>
|
||||
<span>{{
|
||||
$t("message.personnelPosition.beaconManage.table.edit")
|
||||
}}</span>
|
||||
</div>
|
||||
<div
|
||||
@click="removePoint(scope.row)"
|
||||
class="operationText"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/icon-delete.png"
|
||||
width="15px"
|
||||
height="15px"
|
||||
/>
|
||||
<span>{{
|
||||
$t("message.personnelPosition.beaconManage.table.delete")
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <div slot="empty">{{$t('message.personnelPosition.empty')}}</div> -->
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="pageNo"
|
||||
:page-sizes="$store.state.PAGESIZRS"
|
||||
:page-size="pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="Number(total)"
|
||||
background
|
||||
></el-pagination>
|
||||
</div>
|
||||
<!-- 添加卡片弹框 -->
|
||||
<el-dialog
|
||||
:modal-append-to-body="false"
|
||||
:title="cardDialogTitle"
|
||||
:visible.sync="cardDialog"
|
||||
width="667px"
|
||||
@close="close"
|
||||
>
|
||||
<div class="dialog_content">
|
||||
<el-form
|
||||
size="medium"
|
||||
:model="cardForm"
|
||||
ref="cardForm"
|
||||
:rules="cardFormRules"
|
||||
label-width="125px"
|
||||
class="dialogFormBox"
|
||||
>
|
||||
<el-form-item
|
||||
label="装置/单元工程"
|
||||
prop="addReason"
|
||||
>
|
||||
<el-input
|
||||
v-model="cardForm.addReason"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="装置/单元号"
|
||||
prop="addReason"
|
||||
>
|
||||
<el-input
|
||||
v-model="cardForm.addReason"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="项目组"
|
||||
prop="addReason"
|
||||
>
|
||||
<el-input
|
||||
v-model="cardForm.addReason"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="EPC承包商"
|
||||
prop="addReason"
|
||||
>
|
||||
<el-input
|
||||
v-model="cardForm.addReason"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="施工承包商"
|
||||
prop="addReason"
|
||||
>
|
||||
<el-input
|
||||
v-model="cardForm.addReason"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('message.laborDev.addToBlackTime')"
|
||||
prop="addTime"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="cardForm.addTime"
|
||||
type="date"
|
||||
:placeholder="$t('message.laborMange.pleaseSelectADate')"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('message.laborDev.blackNames')"
|
||||
prop="workerId"
|
||||
>
|
||||
<!-- multiple clearable-->
|
||||
<el-select
|
||||
v-model="cardForm.workerId"
|
||||
:placeholder="$t('message.personnelPosition.please_select')"
|
||||
filterable
|
||||
>
|
||||
<el-option
|
||||
:label="item.workerName"
|
||||
:value="item.id"
|
||||
v-for="(item, index) in allPersonList"
|
||||
:key="index"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<div class="dialog-footer">
|
||||
<el-button
|
||||
class="cancleBtn"
|
||||
@click="cardDialog = false"
|
||||
icon="el-icon-circle-close"
|
||||
size="medium"
|
||||
>{{ $t("message.personnelPosition.cancel") }}
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-circle-check"
|
||||
@click="saveCardFn"
|
||||
size="medium"
|
||||
>{{ $t("message.personnelPosition.determine") }}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getWorkerInfoListApi } from "@/assets/js/api/personnelPosition.js";
|
||||
import {
|
||||
workerBlacklistListApi,
|
||||
workerBlacklistAddApi,
|
||||
workerBlacklistEditApi,
|
||||
workerBlacklistDeleteApi,
|
||||
} from "@/assets/js/api/laborPerson.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
searchForm: {
|
||||
workerName: "",
|
||||
},
|
||||
pointList: [],
|
||||
total: 0,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
cardDialogTitle: "",
|
||||
cardDialog: false,
|
||||
cardForm: {
|
||||
addReason: "",
|
||||
addTime: "",
|
||||
idCard: "",
|
||||
reason: "",
|
||||
workerId: "",
|
||||
workerName: "",
|
||||
projectSn: this.$store.state.projectSn,
|
||||
},
|
||||
cardFormRules: {
|
||||
addReason: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("message.personnelPosition.required"),
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
addTime: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("message.personnelPosition.mandatory"),
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
workerId: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t("message.personnelPosition.mandatory"),
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
},
|
||||
isAdd: false,
|
||||
allPersonList: [],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.loadAllPerson();
|
||||
this.loadCardData();
|
||||
},
|
||||
methods: {
|
||||
//获取所有人员
|
||||
loadAllPerson() {
|
||||
getWorkerInfoListApi({
|
||||
projectSn: this.$store.state.projectSn,
|
||||
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
|
||||
}).then((res) => {
|
||||
this.allPersonList = res.result;
|
||||
});
|
||||
},
|
||||
addPoint(event) {
|
||||
this.isAdd = true;
|
||||
this.cardDialog = true;
|
||||
this.cardForm = {
|
||||
addReason: "",
|
||||
addTime: "",
|
||||
idCard: "",
|
||||
reason: "",
|
||||
workerId: "",
|
||||
workerName: "",
|
||||
projectSn: this.$store.state.projectSn,
|
||||
};
|
||||
this.cardDialogTitle = this.$t("message.laborDev.add2");
|
||||
},
|
||||
editPoint(item) {
|
||||
this.isAdd = false;
|
||||
this.cardDialogTitle = this.$t("message.laborDev.btn_edit"); //编辑卡片
|
||||
this.cardForm = JSON.parse(JSON.stringify(item));
|
||||
this.cardDialog = true;
|
||||
},
|
||||
removePoint(item) {
|
||||
this.$confirm(
|
||||
this.$t("message.personnelPosition.beaconManage.table.confirmText") +
|
||||
"【" +
|
||||
item.workerName +
|
||||
"】?",
|
||||
this.$t("message.personnelPosition.beaconManage.table.Tips"),
|
||||
{
|
||||
type: "warning",
|
||||
}
|
||||
).then(() => {
|
||||
workerBlacklistDeleteApi({ id: item.id }).then((res) => {
|
||||
this.loadCardData();
|
||||
this.$message.success(
|
||||
this.$t("message.personnelPosition.delete_success")
|
||||
); //删除成功!
|
||||
});
|
||||
});
|
||||
},
|
||||
//获取卡片列表
|
||||
loadCardData() {
|
||||
workerBlacklistListApi({
|
||||
projectSn: this.$store.state.projectSn,
|
||||
pageNo: this.pageNo,
|
||||
pageSize: this.pageSize,
|
||||
workerName: this.searchForm.workerName,
|
||||
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
|
||||
}).then((res) => {
|
||||
this.pointList = res.result.records;
|
||||
this.total = res.result.total;
|
||||
});
|
||||
},
|
||||
//添加或编辑卡片
|
||||
saveCardFn() {
|
||||
this.$refs["cardForm"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.isAdd) {
|
||||
// this.cardForm.floorId = this.currentFloorDetail.floorId
|
||||
workerBlacklistAddApi(this.cardForm).then((res) => {
|
||||
this.cardDialog = false;
|
||||
this.loadCardData();
|
||||
this.$message.success(
|
||||
this.$t("message.personnelPosition.add_success")
|
||||
); //添加成功!
|
||||
});
|
||||
} else {
|
||||
workerBlacklistEditApi(this.cardForm).then((res) => {
|
||||
this.cardDialog = false;
|
||||
this.loadCardData();
|
||||
this.$message.success(
|
||||
this.$t("message.personnelPosition.edit_success")
|
||||
); //编辑成功!
|
||||
});
|
||||
}
|
||||
} else {
|
||||
console.log("error submit!!");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs["searchForm"].resetFields();
|
||||
this.loadCardData();
|
||||
},
|
||||
|
||||
//查看条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.loadCardData();
|
||||
},
|
||||
//查看页
|
||||
handleCurrentChange(val) {
|
||||
this.pageNo = val;
|
||||
this.loadCardData();
|
||||
},
|
||||
close() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.cardForm.clearValidate();
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
668
src/views/projectFront/constructionManage/schemeLedger.vue
Normal file
668
src/views/projectFront/constructionManage/schemeLedger.vue
Normal file
@ -0,0 +1,668 @@
|
||||
<template>
|
||||
<!-- 危大工程字典页面 -->
|
||||
<div class="fullHeight">
|
||||
<div class="block fullHeight">
|
||||
<div class="system-left">
|
||||
<div class="pageTitle">
|
||||
<el-input placeholder="搜索" v-model="serachName" size="medium" @keyup.enter.native="">
|
||||
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
||||
</el-input>
|
||||
</div>
|
||||
<vue-scroll class="treeList">
|
||||
<div style="padding-top: 10px">
|
||||
<ul v-for="(name, index) in dataList" :key="index">
|
||||
<li :class="{ active: index == current }">
|
||||
<div class="clickName" @click="next(index, $event, name)"
|
||||
style="display: inline-block; padding-left: 15px">
|
||||
<el-popover placement="top-start" v-model="name.visible" :content="name.typeName">
|
||||
<span slot="reference" @mouseenter="
|
||||
name.visible = name.typeName.length > 12 ? true : false
|
||||
" @mouseleave="name.visible = false">{{
|
||||
name.typeName.length > 12
|
||||
? name.typeName.substring(0, 11) + "..."
|
||||
: name.typeName
|
||||
}}</span>
|
||||
</el-popover>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<li class="title" style="text-align: center; line-height: 140px" v-show="dataList.length == 0">
|
||||
<!-- 暂无数据 -->
|
||||
{{ $t("message.dangerousBigDictionary.noData") }}
|
||||
</li>
|
||||
</div>
|
||||
</vue-scroll>
|
||||
</div>
|
||||
<div class="system-right">
|
||||
<div>
|
||||
<el-form :inline="true" size="medium" :model="searchForm" ref="searchForm">
|
||||
<el-form-item label="装置/单元工程" prop="unitProject">
|
||||
<el-input v-model="searchForm.unitProject"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程分包商" prop="projectSubcontractor">
|
||||
<el-input v-model="searchForm.projectSubcontractor"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="方案类型" prop="schemeType">
|
||||
<el-select v-model="searchForm.schemeType"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<!-- v-permission="{key: 'renovate', menuPath: '/project/constructionManage/deviceManage'}" -->
|
||||
<el-button type="primary" plain @click="loadCardData">
|
||||
{{ $t("message.personnelPosition.beaconManage.query") }}
|
||||
</el-button>
|
||||
<el-button type="warning" plain @click="resetForm">
|
||||
{{ $t("message.personnelPosition.beaconManage.refresh") }}
|
||||
</el-button>
|
||||
<el-button type="primary" @click="dialogPoint(1)">
|
||||
新增
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div>
|
||||
<el-table class="tables" :data="pointList">
|
||||
<el-table-column type="index" width="50" align="center"
|
||||
:label="$t('message.personnelPosition.beaconManage.table.index')"></el-table-column>
|
||||
<el-table-column prop="title" label="装置/单元工程" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="装置/单元号" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="承包方式" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="工程承包商" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="工程监理单位" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="工程分包商" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="区域项目组" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="技术文件类型" align="center"></el-table-column>
|
||||
<el-table-column prop="title" label="方案类型" align="center"></el-table-column>
|
||||
<el-table-column width="400" :label="
|
||||
$t('message.personnelPosition.beaconManage.table.operation')
|
||||
" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="operation-style">
|
||||
<div class="operationText" @click="previewDialog(scope.row)">
|
||||
<img src="@/assets/images/tableIcon/preview.png" width="15px" height="15px" />
|
||||
<span>预览</span>
|
||||
</div>
|
||||
<el-button class="m-0" @click.native.prevent="addEmergencyType(scope.row)" type="text"
|
||||
size="small">
|
||||
<i class="el-icon-download"></i>
|
||||
下载
|
||||
</el-button>
|
||||
<div class="operationText" @click="dialogPoint(2, scope.row)">
|
||||
<img src="@/assets/images/tableIcon/qrcode.png" width="15px" height="15px" />
|
||||
<span>二维码</span>
|
||||
</div>
|
||||
<el-button class="m-0" @click.native.prevent="addEmergencyType(scope.row)" type="text"
|
||||
size="small">
|
||||
<i class="el-icon-setting"></i>
|
||||
设置
|
||||
</el-button>
|
||||
<el-button class="m-0" @click.native.prevent="editData(scope.row)" type="text"
|
||||
size="small">
|
||||
<i class="el-icon-edit"></i> 编辑
|
||||
</el-button>
|
||||
<el-button class="m-0" @click.stop="deleteRow(scope.row)" type="text" size="small">
|
||||
<i class="el-icon-delete"></i>
|
||||
删除
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <div slot="empty">{{$t('message.personnelPosition.empty')}}</div> -->
|
||||
</el-table>
|
||||
<el-pagination class="pagerBox" @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
||||
:current-page="pageNo" :page-sizes="$store.state.PAGESIZRS" :page-size="pageSize"
|
||||
layout="total, sizes, prev, pager, next" :total="Number(total)" background></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 新增 -->
|
||||
<el-dialog :modal-append-to-body="false" :title="cardDialogTitle" :visible.sync="cardDialog" width="667px"
|
||||
:before-close="handleClose">
|
||||
<div class="dialog_content" v-if="dialogType == 1">
|
||||
<el-form size="medium" :model="cardForm" ref="cardForm" :rules="rules" label-width="125px"
|
||||
class="dialogFormBox">
|
||||
<el-form-item label="装置/单元工程" prop="unitProject">
|
||||
<el-input v-model="cardForm.unitProject"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="装置/单元号" prop="unitMark">
|
||||
<el-input v-model="cardForm.unitMark"
|
||||
:placeholder="$t('message.personnelPosition.please_enter')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="承包方式" prop="contractingSystem">
|
||||
<el-select v-model="cardForm.contractingSystem"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程承包商" prop="projectContractor">
|
||||
<el-select v-model="cardForm.projectContractor"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程监理单位" prop="projectSupervisionUnit">
|
||||
<el-select v-model="cardForm.projectSupervisionUnit"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工程分包商" prop="projectSubcontractor">
|
||||
<el-select v-model="cardForm.projectSubcontractor"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="区域项目组" prop="regionalProjectTeam">
|
||||
<el-select v-model="cardForm.regionalProjectTeam"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="技术文件类型" prop="technicalDocumentType">
|
||||
<el-select v-model="cardForm.technicalDocumentType"
|
||||
:placeholder="$t('message.personnelPosition.please_select')" filterable>
|
||||
<el-option :label="item.workerName" :value="item.id" v-for="(item, index) in allPersonList"
|
||||
:key="index">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- multiple clearable-->
|
||||
<el-form-item label="方案类型" prop="schemeType">
|
||||
<el-radio-group style="display: flex; align-items: center; height: 36px"
|
||||
v-model="cardForm.schemeType">
|
||||
<el-radio :label="3">施工组织设计或重大施工方案</el-radio>
|
||||
<el-radio :label="6">一般性施工方案</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="surveySchemeList">
|
||||
<el-upload class="upload-demo" name="files" :action="$store.state.UPLOADURL"
|
||||
:on-remove="(file, fileList) => handleRemove(file, fileList)" :multiple="false"
|
||||
:on-success="(res, file) => handleSuccess(res, file)" :file-list="cardForm.surveySchemeList"
|
||||
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf">
|
||||
<el-button type="primary"> 上传附件 </el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<div class="dialog-footer">
|
||||
<el-button class="cancleBtn" @click="handleClose" icon="el-icon-circle-close" size="medium">{{
|
||||
$t("message.personnelPosition.cancel") }}
|
||||
</el-button>
|
||||
<el-button type="primary" icon="el-icon-circle-check" @click="saveCardFn('cardForm')"
|
||||
size="medium">{{ $t("message.personnelPosition.determine") }}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="dialog_content" v-else-if="dialogType == 2">
|
||||
<div id="qrcode" ref="qrCodeDiv"></div>
|
||||
<el-button style="margin-top: 20px" type="primary" @click="printBtn()" size="medium">打印方案二维码
|
||||
</el-button>
|
||||
<!-- <el-image
|
||||
style="
|
||||
margin-right: 8px;
|
||||
width: 250px;
|
||||
height: 250px;
|
||||
cursor: pointer;
|
||||
border-radius: 4px;
|
||||
"
|
||||
fit="cover"
|
||||
:src="$store.state.FILEURL + qrCode"
|
||||
:preview-src-list="[$store.state.FILEURL + qrCode]"
|
||||
/> -->
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
deletedangerousEngineeringTypeApi,
|
||||
selectdangerousEngineeringTypeApi,
|
||||
} from "@/assets/js/api/dangerousBigProject";
|
||||
import QRCode from 'qrcodejs2'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
isloading: false,
|
||||
cardDialog: false,
|
||||
current: 0,
|
||||
dataList: [],
|
||||
cardDialogTitle: "",
|
||||
dialogType: -1, // 1 新增 2 二维码
|
||||
rules: {
|
||||
unitProject: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
unitMark: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
contractingSystem: [
|
||||
{ required: true, message: "必选", trigger: "change" },
|
||||
],
|
||||
projectContractor: [
|
||||
{ required: true, message: "必选", trigger: "change" },
|
||||
],
|
||||
projectSupervisionUnit: [
|
||||
{ required: true, message: "必选", trigger: "change" },
|
||||
],
|
||||
projectSubcontractor: [
|
||||
{ required: true, message: "必选", trigger: "change" },
|
||||
],
|
||||
regionalProjectTeam: [
|
||||
{ required: true, message: "必选", trigger: "change" },
|
||||
],
|
||||
technicalDocumentType: [
|
||||
{ required: true, message: "必选", trigger: "change" },
|
||||
],
|
||||
schemeType: [{ required: true, message: "必选", trigger: "change" }],
|
||||
surveySchemeList: [
|
||||
{ required: true, message: "请上传附件", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
cardForm: {
|
||||
unitProject: "",
|
||||
unitMark: "",
|
||||
contractingSystem: "",
|
||||
projectContractor: "",
|
||||
projectSupervisionUnit: "",
|
||||
projectSubcontractor: "",
|
||||
regionalProjectTeam: "",
|
||||
technicalDocumentType: "",
|
||||
schemeType: "",
|
||||
surveySchemeList: [],
|
||||
projectSn: this.$store.state.projectSn,
|
||||
},
|
||||
serachName: "",
|
||||
searchForm: {
|
||||
unitProject: "",
|
||||
projectSubcontractor: "",
|
||||
schemeType: "",
|
||||
},
|
||||
pointList: [
|
||||
{
|
||||
id: 1,
|
||||
title: "测试装置",
|
||||
},
|
||||
],
|
||||
total: 0,
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
allPersonList: [],
|
||||
qrCode: "",
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.loadList();
|
||||
},
|
||||
//列表加载
|
||||
methods: {
|
||||
// 关闭前执行
|
||||
handleClose(done) {
|
||||
if (this.dialogType == 1) {
|
||||
this.$refs["cardForm"].resetFields();
|
||||
}
|
||||
|
||||
this.cardDialog = false;
|
||||
},
|
||||
// 新增表单数据
|
||||
saveCardFn(formName) {
|
||||
this.$refs[formName].validate((valid) => {
|
||||
if (valid) {
|
||||
alert("submit!");
|
||||
} else {
|
||||
console.log("error submit!!");
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 删除文件
|
||||
handleRemove(file, fileList) {
|
||||
this.cardForm.surveySchemeList = fileList;
|
||||
},
|
||||
handleSuccess(res, file) {
|
||||
if (res.status == "SUCCESS") {
|
||||
this.cardForm.surveySchemeList.push({
|
||||
name: file.name,
|
||||
url: this.$store.state.FILEURL + file.response.data[0].imageUrl,
|
||||
});
|
||||
}
|
||||
},
|
||||
//查看条数
|
||||
handleSizeChange(val) {
|
||||
this.pageSize = val;
|
||||
this.loadCardData();
|
||||
},
|
||||
//查看页
|
||||
handleCurrentChange(val) {
|
||||
this.pageNo = val;
|
||||
this.loadCardData();
|
||||
},
|
||||
|
||||
downloadFn() {
|
||||
window.location.href =
|
||||
this.$http.defaults.baseURL +
|
||||
"xmgl/inspectTableLibrary/downloadExcelInspectTable";
|
||||
},
|
||||
del1(obj) {
|
||||
this.$confirm(
|
||||
this.$t("message.personnelPosition.beaconManage.table.confirmText") +
|
||||
"【" +
|
||||
obj.typeName +
|
||||
"】?",
|
||||
this.$t("message.personnelPosition.beaconManage.table.Tips"),
|
||||
{
|
||||
confirmButtonText: this.$t(
|
||||
"message.personnelPosition.confirmButtonText"
|
||||
),
|
||||
cancelButtonText: this.$t(
|
||||
"message.personnelPosition.cancelButtonText"
|
||||
),
|
||||
type: "warning",
|
||||
}
|
||||
).then(() => {
|
||||
deletedangerousEngineeringTypeApi({ id: obj.id }).then((result) => {
|
||||
if (result.success) {
|
||||
this.$message.success(result.message);
|
||||
this.loadList();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
loadList() {
|
||||
let param = {
|
||||
sn: this.$store.state.userInfo.headquartersSn,
|
||||
};
|
||||
selectdangerousEngineeringTypeApi(param).then((res) => {
|
||||
// this.dataList = res.result;
|
||||
this.dataList = [
|
||||
{
|
||||
id: 1,
|
||||
typeName: "装置1",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
typeName: "装置2",
|
||||
},
|
||||
];
|
||||
if (res.result.length > 0) {
|
||||
this.current = 0;
|
||||
}
|
||||
});
|
||||
},
|
||||
next(index, $event, data) {
|
||||
console.log("data", data);
|
||||
|
||||
this.current = index;
|
||||
this.leftId = data.id;
|
||||
// this.loadRigthtList();
|
||||
},
|
||||
// 查询
|
||||
loadCardData() {
|
||||
// workerBlacklistListApi({
|
||||
// projectSn: this.$store.state.projectSn,
|
||||
// pageNo: this.pageNo,
|
||||
// pageSize: this.pageSize,
|
||||
// workerName: this.searchForm.workerName,
|
||||
// userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
|
||||
// }).then((res) => {
|
||||
// this.pointList = res.result.records;
|
||||
// this.total = res.result.total;
|
||||
// });
|
||||
},
|
||||
// 刷新
|
||||
resetForm() {
|
||||
this.$refs["searchForm"].resetFields();
|
||||
this.loadCardData();
|
||||
},
|
||||
// 弹窗
|
||||
dialogPoint(dialogType, row) {
|
||||
this.cardDialog = true;
|
||||
if (dialogType == 1) {
|
||||
this.cardForm = {
|
||||
unitProject: "",
|
||||
unitMark: "",
|
||||
contractingSystem: "",
|
||||
projectContractor: "",
|
||||
projectSupervisionUnit: "",
|
||||
projectSubcontractor: "",
|
||||
regionalProjectTeam: "",
|
||||
technicalDocumentType: "",
|
||||
schemeType: "",
|
||||
projectSn: this.$store.state.projectSn,
|
||||
};
|
||||
this.cardDialogTitle = this.$t("message.laborDev.add2");
|
||||
} else if (dialogType == 2) {
|
||||
// this.qrCode = "66a1c62f48865f7395bbe2ee.png"
|
||||
this.$nextTick(() => {
|
||||
this.bindQRCode();
|
||||
})
|
||||
this.cardDialogTitle = "二维码详情";
|
||||
}
|
||||
this.dialogType = dialogType;
|
||||
},
|
||||
//生成 二维码
|
||||
bindQRCode() {
|
||||
document.getElementById("qrcode").innerHTML = "";
|
||||
let httpUrl = window.location.origin;
|
||||
let projectSn = this.$store.state.projectSn;
|
||||
let data = {
|
||||
// id: this.id,
|
||||
type: "wdgc",
|
||||
};
|
||||
new QRCode(this.$refs.qrCodeDiv, {
|
||||
text: JSON.stringify(data),
|
||||
width: 200,
|
||||
height: 200,
|
||||
colorDark: '#333333', //二维码颜色
|
||||
colorLight: '#ffffff', //二维码背景色
|
||||
correctLevel: QRCode.CorrectLevel.L, //容错率,L/M/H
|
||||
});
|
||||
},
|
||||
printBtn() {
|
||||
// setTimeout(() => {
|
||||
// console.log(this.$refs["qrCodeDiv"].innerHTML)
|
||||
// },100)
|
||||
// qrCode
|
||||
setTimeout(() => {
|
||||
let printDemo = this.$refs["qrCodeDiv"].innerHTML;
|
||||
console.log(printDemo);
|
||||
window.document.body.innerHTML = printDemo;
|
||||
//没有图片直接打印
|
||||
window.print();
|
||||
window.location.reload();
|
||||
}, 100);
|
||||
},
|
||||
},
|
||||
// watch: {
|
||||
// cardDialog: {
|
||||
// handler(newVal, oldVal) {
|
||||
// if(newVal == false){
|
||||
|
||||
// }
|
||||
// },
|
||||
// deep: true,
|
||||
// },
|
||||
// },
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.dialog_content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.operation-style {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.operationText:not(:last-child) {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.m-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.el-icon-edit,
|
||||
.el-icon-download,
|
||||
.el-icon-setting {
|
||||
color: #5181f6;
|
||||
}
|
||||
|
||||
.el-icon-delete {
|
||||
color: #f56c6c;
|
||||
}
|
||||
|
||||
.el-button--text {
|
||||
color: #262d47;
|
||||
}
|
||||
|
||||
.el-button--small,
|
||||
.el-button--small.is-round {
|
||||
padding: 6px 9px;
|
||||
}
|
||||
|
||||
.block {
|
||||
overflow: hidden;
|
||||
height: calc(100% + 0px);
|
||||
background-color: #f3f5fd;
|
||||
|
||||
.system-left {
|
||||
float: left;
|
||||
width: 330px;
|
||||
padding: 20px 15px;
|
||||
height: calc(100% - 40px);
|
||||
background-color: white;
|
||||
|
||||
.treeList {
|
||||
background-color: rgba(216, 216, 216, 0.2);
|
||||
height: calc(100% - 42px) !important;
|
||||
}
|
||||
|
||||
li {
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
line-height: 32px;
|
||||
letter-spacing: 1px;
|
||||
font-weight: bold;
|
||||
|
||||
.clickName {
|
||||
// width: calc(100% - 176px);
|
||||
width: 74%;
|
||||
|
||||
.imgbox {
|
||||
display: inline-block;
|
||||
margin: 0 6px 0 13px;
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
li:hover,
|
||||
.active {
|
||||
// background: linear-gradient(270deg, white, #b7d8ff 100%);
|
||||
background-color: rgba(81, 129, 246, 0.14);
|
||||
color: @--color-primary;
|
||||
}
|
||||
|
||||
#child {
|
||||
li {
|
||||
font-size: 15px;
|
||||
padding-left: 39px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.system-right {
|
||||
float: right;
|
||||
// margin-right: 1.5%;
|
||||
margin-left: 20px;
|
||||
width: calc(100% - 360px - 20px - 30px);
|
||||
// min-height: 620px;
|
||||
height: calc(100% - 40px);
|
||||
// border: 1px solid #e9e9e9;
|
||||
background-color: white;
|
||||
padding: 20px 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.formTwoInput {
|
||||
/deep/.el-form-item__content {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.el-icon-question {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
/deep/.input-with-select {
|
||||
.el-input-group__append {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
width: 130px !important;
|
||||
|
||||
.el-input {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.jyjzPage {
|
||||
.block {
|
||||
background-color: transparent;
|
||||
|
||||
.system-left {
|
||||
background-color: #112446;
|
||||
}
|
||||
|
||||
.system-right {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.treeList {
|
||||
background-color: #0d1a34;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pageTitle2 {
|
||||
cursor: pointer;
|
||||
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.el-icon-back {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep.el-form-item.foldLabel .el-form-item__label {
|
||||
white-space: pre-line;
|
||||
/*换行显示*/
|
||||
height: 32px;
|
||||
/*设置lable高度,与input高度一样*/
|
||||
line-height: 16px !important;
|
||||
/*设置行高为label高度的一半(有n行就是label高度的1/n)*/
|
||||
}
|
||||
</style>
|
||||
Loading…
x
Reference in New Issue
Block a user