flx:包头新增施工管理

This commit is contained in:
X_Rian 2024-08-05 17:59:46 +08:00
parent 23ff4dc607
commit 3c9253155c
5 changed files with 1084 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

View File

@ -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",

View File

@ -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 + "/", //正式环境

View 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>

View 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>