Commit 4fc8e264 by bingobo

辽宁一版发版

1 parent 7ba7408a
The file could not be displayed because it is too large.
......@@ -7,6 +7,6 @@ const SystemConfig = {
//TODO VUE_APP_BASE_URL: "http://25.66.210.41/tools",
VUE_APP_BASE_URL: "http://192.168.0.113:18088/tools",
//TODO VUE_APP_ZJ_IFRAME: "http://25.66.210.41/arch"
// VUE_APP_ZJ_IFRAME: "http://192.168.0.113:18088/arch"
// VUE_APP_ZJ_IFRAME: "http://192.168.0.113/arch"
VUE_APP_ZJ_IFRAME: "http://localhost:30478/arch"
};
......@@ -10,6 +10,36 @@ import { get, post, download } from '@/utils/http'
export function evalBatchInfo(params) {
return post(`${ARCH_EVALUATION}/postEvalBatchInfoZc/`, params)
}
// 获取里程碑数据列表
export function milestonesGetList(params) {
// milestones/getList
return get(`${ARCH_EVALUATION}/milestones/getList`, params)
}
// 获取流程列表
export function getMessageListApi(params) {
// messageReminder/getIPageList
return post(`${ARCH_EVALUATION}/messageReminder/getIPageList`, params)
}
// 一键已读 已读单条msg
export function updateMessageApi(params) {
// messageReminder/batchUpdate
return post(`${ARCH_EVALUATION}/messageReminder/batchUpdate`, params)
}
// 一键已读 已读所有msg
export function readWholwMsg() {
return get(`${ARCH_EVALUATION}/messageReminder/batchRead`)
}
// 获取流程列表
// export function evalBatchInfo(params) {
// return post(`${ARCH_EVALUATION}/postEvalBatchInfoZc/`, params)
// }
//专家库
export function expertInfo(params) {
return post(`${ARCH_EVALUATION}/expertInfo/`, params)
......
......@@ -1105,8 +1105,7 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(async () => {
}).then(async () => {
let res = await delEvalBatchInfo(this.checkedList[0])
if (res.code == 200) {
this.$message({
......@@ -1121,8 +1120,7 @@ export default {
})
this.resetForm()
}
})
.catch(() => {
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除',
......
......@@ -9,8 +9,14 @@
<div class="continer flex-column">
<div class="top" :class="dialogFullScreen ? 'noShow' : ''">
<el-button
type="primary"
style="position: absolute; left: -170px"
@click="showMilestoneDialog"
>里程碑</el-button
>
<el-button
type="primary"
class="working"
style="position: absolute; left: -80px"
@click="working('work')"
>智能分析</el-button>
<el-steps :active="active" align-center finish-status="success">
......@@ -231,12 +237,193 @@
>
<div v-html="wtmx" class="dialogscroll"></div>
</el-dialog>
<el-dialog
:visible.sync="showMilestone"
title="项目里程碑"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div style="height: 65vh; display: flex; flex-direction: row; gap: 10px">
<div style="flex: 1">
<el-card style="height: 100%">
<div
style="background-color: #0d867f; color: #fff; font-size: 18px"
>
项目计划里程碑
</div>
<div class="time_line_wrap">
<div
v-for="(item, index) in timeLineDataList1"
:key="index"
style="display: flex; flex-direction: row; width: 100%"
>
<div class="time_item_left">
<div>{{ item.milestoneName }}</div>
</div>
<div class="time_item_center">
<!-- status: 1 完成 ,2 异常 , 3 未到达 -->
<div
v-if="compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="!compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #8a8a8a',
background: '#8a8a8a',
}"
></div>
<div
v-if="item.milestoneTime == null"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<!-- <div
v-if="item.status == 1"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="item.status == 2"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<div
v-if="item.status == 3"
class="time_item_dot"
:style="{ border: '2px solid #8a8a8a' }"
></div> -->
<!-- 线条颜色逻辑: 判断当前节点的下一个节点的状态,如果status === 3,未到达,则当前节点的线条为#8a8a8a,否则当前节点线条为#54aeed -->
<div
v-if="index < timeLineDataList1.length - 1"
class="time_item_line"
:style="{
borderLeftColor: !compareTime(
timeLineDataList1[index + 1].milestoneTime
)
? '#8a8a8a'
: '#54aeed',
}"
></div>
</div>
<div class="time_item_right">
<div>{{ item.milestoneTime }}</div>
</div>
</div>
</div>
</el-card>
</div>
<div style="flex: 1">
<el-card style="height: 100%">
<div
style="background-color: #0d867f; color: #fff; font-size: 18px"
>
项目实际里程碑
</div>
<div class="time_line_wrap">
<div
v-for="(item, index) in timeLineDataList2"
:key="index"
style="display: flex; flex-direction: row; width: 100%"
>
<div class="time_item_left">
<div>{{ item.milestoneName }}</div>
</div>
<div class="time_item_center">
<!-- status: 1 完成 ,2 异常 , 3 未到达 -->
<div
v-if="compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="!compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #8a8a8a',
background: '#8a8a8a',
}"
></div>
<div
v-if="item.milestoneTime == null"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<!-- <div
v-if="item.status == 1"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="item.status == 2"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<div
v-if="item.status == 3"
class="time_item_dot"
:style="{ border: '2px solid #8a8a8a' }"
></div> -->
<!-- 线条颜色逻辑: 判断当前节点的下一个节点的状态,如果status === 3,未到达,则当前节点的线条为#8a8a8a,否则当前节点线条为#54aeed -->
<div
v-if="index < timeLineDataList2.length - 1"
class="time_item_line"
:style="{
borderLeftColor: !compareTime(
timeLineDataList2[index + 1].milestoneTime
)
? '#8a8a8a'
: '#54aeed',
}"
></div>
</div>
<div class="time_item_right">
<div>{{ item.milestoneTime }}</div>
</div>
</div>
</div>
</el-card>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
// import{kkk}from "@/static/web/viewer.mjs"
import {
milestonesGetList,
} from "@/api/indexzc";
import {
selWtqdFZ,
selFile,
downloadObject,
......@@ -252,6 +439,36 @@ import { Loading } from 'element-ui';
export default {
data() {
return {
timeLineDataList1: [
// {
// milestoneTime: "2021-10",
// milestoneName: "中标日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "合同生效日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "启动计划开始日期",
// status: 2,
// },
],
timeLineDataList2: [
// {
// milestoneTime: "2021-10",
// milestoneName: "启动实际结束日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "系统开发实际结束日期",
// status: 1,
// },
],
showMilestone: false,
resimg: '',
dialogFullScreen: false,
valuesel: '',
......@@ -311,11 +528,113 @@ export default {
}
},
mounted() {
this.getMilestonesList();
this.clqparams = JSON.parse(this.$route.query.clqparams)
this.projectName = this.$route.query.projectName
this.init(this.clqparams)
},
methods: {
compareTime(time) {
const date = new Date(time).setHours(0, 0, 0, 0);
const today = new Date().setHours(0, 0, 0, 0);
return date <= today; // 头一天或者当天
},
async getMilestonesList() {
const { projectId, contractNumber } = JSON.parse(
this.$route.query.clqparams
);
const params = {
projectCode: projectId,
contractNumber: contractNumber
// projectCode: "7322XT23005C", // projectId
// contractNumber: "SGLNXT00DKXX2310552", // contractNumber
};
const res = await milestonesGetList(params);
if (res.data.code === 200) {
// const mockdata = {
// code: 200,
// msg: "操作成功!",
// data: {
// dataList2: [
// {
// milestoneName: "启动实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "成果评审实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "试运行验收实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "结算实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "决算实际结束日期",
// milestoneTime: "2025-12-31",
// },
// {
// milestoneName: "转资实际结束日期",
// milestoneTime: "2025-12-31",
// },
// ],
// dataList1: [
// {
// milestoneName: "中标日期",
// milestoneTime: "2023-11-10",
// },
// {
// milestoneName: "合同生效日期",
// milestoneTime: "2023-12-06",
// },
// {
// milestoneName: "启动计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "成果评审计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "竣工验收计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "结算计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "决算计划开始日期",
// milestoneTime: "2025-12-31",
// },
// {
// milestoneName: "转资计划开始日期",
// milestoneTime: "2025-12-31",
// },
// ],
// },
// failed: false,
// };
const { dataList1, dataList2 } = res.data.data;
dataList1.forEach((item, index) => {
item["key"] = index + 1;
});
dataList2.forEach((item, index) => {
item["key"] = index + 1;
});
console.log(66666, dataList1, dataList2);
this.timeLineDataList1 = dataList1;
this.timeLineDataList2 = dataList2;
} else {
this.$message.error(res.data.msg)
}
},
showMilestoneDialog() {
this.showMilestone = true;
},
zhanshi() {
this.dialogzhanshi = true
},
......@@ -832,6 +1151,49 @@ export default {
}
</script>
<style lang="scss">
.time_line_wrap {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
padding: 20px 10px;
}
.time_item_left {
margin-bottom: 24px;
margin-top: 1px;
flex: 60;
text-align: end;
}
.time_item_center {
display: flex;
flex-direction: column;
align-items: center;
padding: 0 12px;
}
.time_item_right {
margin-bottom: 24px;
margin-top: 2px;
flex: 40;
text-align: left;
}
.time_item_line {
position: relative;
height: calc(100% - 18px);
min-height: 20px;
border-left-width: 2px;
// border-left-color: #f2f2f3;
border-left-style: solid;
}
.time_item_dot {
// border: 2px solid #babbc0;
border-radius: 50%;
width: 18px;
height: 18px;
flex-shrink: 0;
}
</style>
<style lang="scss" scoped>
.main {
font-size: 14px;
......
......@@ -9,10 +9,17 @@
<div class="continer flex-column">
<div class="top" :class="dialogFullScreen ? 'noShow' : ''">
<el-button
type="primary"
class="working"
@click="working('work')"
>智能分析</el-button>
type="primary"
style="position: absolute; left: -170px"
@click="showMilestoneDialog"
>里程碑</el-button
>
<el-button
type="primary"
style="position: absolute; left: -80px"
@click="working('work')"
>智能分析</el-button
>
<el-steps :active="active" align-center finish-status="success">
<el-step
v-for="item in tabList"
......@@ -25,8 +32,7 @@
<div class="content">
<div class="left flex-column">
<p class="tableTitle">
检查内容
检查内容<i class="el-icon-full-screen" @click="zoomViewDialog"></i>
</p>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
......@@ -52,38 +58,86 @@
</el-select>
</div>
<!-- <div class="pdf-container" v-if="blobType === 'pdf' || (blobType === 'doc' && options.length > 0)">
<div class="pdf-controls">
<el-button type="primary" @click="downloadPdf">下载 PDF</el-button>
<el-button type="warning" @click="zoomIn">放大</el-button>
</div>
<iframe
ref="pdfIframe"
:key="iframeUrl"
:src="iframeUrl"
frameborder="0"
:class="dialogFullScreen ? 'iframeDivBig' : 'iframeDiv'"
></iframe>
</div> -->
<iframe
v-if="blobType == 'pdf' || (blobType == 'doc' && options.length > 0)"
v-if="
blobType == 'pdf' || (blobType == 'doc' && options.length > 0)
"
:key="iframeUrl"
:src="iframeUrl"
frameborder="0"
:class="dialogFullScreen ? 'iframeDivBig' : 'iframeDiv'"
></iframe>
<div v-else-if="blobType == 'png' || blobType == 'jpg'" class="blobImg">
<div
v-else-if="blobType == 'png' || blobType == 'jpg'"
class="blobImg"
>
<img :src="iframeUrl" alt="" />
</div>
<div class="docDiv" v-else-if="blobType == 'docx' && options.length > 0">
<div
class="docDiv"
v-else-if="blobType == 'docx' && options.length > 0"
>
<div :ref="`word`" :id="`word${item.typeCode}`"></div>
</div>
</el-tab-pane>
</el-tabs>
</div>
<div class="right flex-column">
<p class="tableTitle">检查项 <i class="el-icon-full-screen" @click="dialogFullScreen = !dialogFullScreen"></i></p>
<p class="tableTitle">
检查项
<i
class="el-icon-full-screen"
@click="dialogFullScreen = !dialogFullScreen"
></i>
</p>
<div :class="dialogFullScreen ? 'rightscollBig' : 'rightscoll'">
<div class="rightContent" v-for="item in questionList" :key="item.questionId">
<h3>{{ item.questionId }}.{{ item.quesCheckItem }} <el-tooltip class="item" effect="dark" :content="item.checkDesc" placement="right-end">
<i class="el-icon-info"></i></el-tooltip> </h3>
<div
class="rightContent"
v-for="item in questionList"
:key="item.questionId"
>
<h3>
{{ item.questionId }}.{{ item.quesCheckItem }}
<el-tooltip
v-if="item.checkDesc !== ''"
class="item"
effect="dark"
:content="item.checkDesc"
placement="right-end"
>
<i class="el-icon-info"></i
></el-tooltip>
</h3>
<p class="msg">
<!-- {{ item.checkDesc }} -->
<el-button
type="primary"
v-if="item.checkDesc == '可研中的需求内容应与业务需求报告中的需求匹配' && wtmx"
@click="zhanshi()"
v-if="
item.checkDesc ==
'可研中的需求内容应与业务需求报告中的需求匹配' && wtmx
"
@click="zanShi()"
>匹配展示</el-button
>
</p>
<div class="quesznfx" v-if="item.znfxList && item.znfxList.length > 0">
<div
class="quesznfx"
v-if="item.znfxList && item.znfxList.length > 0"
>
<p class="tips">智能分析:</p>
<!-- <p>{{ item.znfxList[0].projectStage }}</p> -->
......@@ -115,9 +169,16 @@
</span>
</span>
</div>
<div class="quesznfx" v-if="item.fzfxList && item.fzfxList.length > 0">
<div
class="quesznfx"
v-if="item.fzfxList && item.fzfxList.length > 0"
>
<p class="tips">辅助分析:</p>
<div v-for="(itemfz, index) in item.fzfxList" :key="index" class="inputDiv">
<div
v-for="(itemfz, index) in item.fzfxList"
:key="index"
class="inputDiv"
>
<el-input
type="textarea"
:autosize="{ minRows: 1, maxRows: 4 }"
......@@ -135,7 +196,11 @@
</div>
<div class="question">
<p class="tips">问题描述:</p>
<div v-for="(items, index) in item.evalList" :key="index" class="inputDiv">
<div
v-for="(items, index) in item.evalList"
:key="index"
class="inputDiv"
>
<el-input
type="textarea"
:autosize="{ minRows: 1, maxRows: 4 }"
......@@ -144,7 +209,9 @@
:disabled="items.disabled"
>
</el-input
><el-button @click="delInput(item, index)" type="primary">删除</el-button>
><el-button @click="delInput(item, index)" type="primary"
>删除</el-button
>
<el-upload
class="upload_box"
......@@ -154,7 +221,7 @@
:on-change="handleEditChange"
:http-request="
(res) => {
return fileupdate(res, items)
return fileupdate(res, items);
}
"
:before-upload="beforeAvatarUpload"
......@@ -166,12 +233,21 @@
action=""
>
<!-- 加号标识 -->
<el-button class="upload_btn" slot="trigger" size="small" type="primary">
<el-button
class="upload_btn"
slot="trigger"
size="small"
type="primary"
>
上传截图
</el-button>
<!-- 上传后显示 -->
<div slot="file" slot-scope="{ file }">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
<img
class="el-upload-list__item-thumbnail"
:src="file.url"
alt=""
/>
<span class="el-upload-list__item-actions">
<!-- 图片放大 -->
<span
......@@ -217,12 +293,12 @@
</div>
</div>
<p class="Btn">
<span @click="cancel()">取消</span><span @click="save('3', active)">保存</span>
<span @click="cancel()">取消</span
><span @click="save('3', active)">保存</span>
<span @click="submitNexts()">提交</span>
</p>
</div>
</div>
<el-dialog
:visible.sync="dialogzhanshi"
title="匹配展示"
......@@ -232,13 +308,250 @@
>
<div v-html="wtmx" class="dialogscroll"></div>
</el-dialog>
<el-dialog
:visible.sync="showZoomViewDialog"
title="检查内容"
width="90%"
:modal-append-to-body="true"
:append-to-body="true"
:fullscreen="true"
>
<!-- TODO -->
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
v-for="item in tabListKY"
:key="item.typeText"
:label="item.typeText"
:name="item.typeCode"
>
<div class="opt" v-show="options.length > 0">
<el-select
v-model="valuesel"
clearable
placeholder="请选择"
@change="(val) => changexm(val, item.typeCode)"
>
<el-option
v-for="(item, index) in options"
:key="item.name"
:label="item.name"
:value="index"
>
</el-option>
</el-select>
</div>
<iframe
v-if="
blobType == 'pdf' || (blobType == 'doc' && options.length > 0)
"
:key="iframeUrl"
:src="iframeUrl"
frameborder="0"
:class="dialogFullScreen ? 'iframeDivBig' : 'iframeDiv'"
></iframe>
<div
v-else-if="blobType == 'png' || blobType == 'jpg'"
class="blobImg"
>
<img :src="iframeUrl" alt="" />
</div>
<div
class="docDiv"
v-else-if="blobType == 'docx' && options.length > 0"
>
<div :ref="`word`" :id="`word${item.typeCode}`"></div>
</div>
</el-tab-pane>
</el-tabs>
<!-- TODO -->
</el-dialog>
<el-dialog
:visible.sync="showMilestone"
title="项目里程碑"
width="90%"
:modal-append-to-body="false"
:append-to-body="false"
>
<div style="height: 65vh; display: flex; flex-direction: row; gap: 10px">
<div style="flex: 1">
<el-card style="height: 100%">
<div
style="background-color: #0d867f; color: #fff; font-size: 18px"
>
项目计划里程碑
</div>
<div class="time_line_wrap">
<div
v-for="(item, index) in timeLineDataList1"
:key="index"
style="display: flex; flex-direction: row; width: 100%"
>
<div class="time_item_left">
<div>{{ item.milestoneName }}</div>
</div>
<div class="time_item_center">
<!-- status: 1 完成 ,2 异常 , 3 未到达 -->
<div
v-if="compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="!compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #8a8a8a',
background: '#8a8a8a',
}"
></div>
<div
v-if="item.milestoneTime == null"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<!-- <div
v-if="item.status == 1"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="item.status == 2"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<div
v-if="item.status == 3"
class="time_item_dot"
:style="{ border: '2px solid #8a8a8a' }"
></div> -->
<!-- 线条颜色逻辑: 判断当前节点的下一个节点的状态,如果status === 3,未到达,则当前节点的线条为#8a8a8a,否则当前节点线条为#54aeed -->
<div
v-if="index < timeLineDataList1.length - 1"
class="time_item_line"
:style="{
borderLeftColor: !compareTime(
timeLineDataList1[index + 1].milestoneTime
)
? '#8a8a8a'
: '#54aeed',
}"
></div>
</div>
<div class="time_item_right">
<div>{{ item.milestoneTime }}</div>
</div>
</div>
</div>
</el-card>
</div>
<div style="flex: 1">
<el-card style="height: 100%">
<div
style="background-color: #0d867f; color: #fff; font-size: 18px"
>
项目实际里程碑
</div>
<div class="time_line_wrap">
<div
v-for="(item, index) in timeLineDataList2"
:key="index"
style="display: flex; flex-direction: row; width: 100%"
>
<div class="time_item_left">
<div>{{ item.milestoneName }}</div>
</div>
<div class="time_item_center">
<!-- status: 1 完成 ,2 异常 , 3 未到达 -->
<div
v-if="compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="!compareTime(item.milestoneTime)"
class="time_item_dot"
:style="{
border: '2px solid #8a8a8a',
background: '#8a8a8a',
}"
></div>
<div
v-if="item.milestoneTime == null"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<!-- <div
v-if="item.status == 1"
class="time_item_dot"
:style="{
border: '2px solid #54aeed',
background: '#54aeed',
}"
></div>
<div
v-if="item.status == 2"
class="time_item_dot"
:style="{
border: '2px solid #eba84b',
background: '#eba84b',
}"
></div>
<div
v-if="item.status == 3"
class="time_item_dot"
:style="{ border: '2px solid #8a8a8a' }"
></div> -->
<!-- 线条颜色逻辑: 判断当前节点的下一个节点的状态,如果status === 3,未到达,则当前节点的线条为#8a8a8a,否则当前节点线条为#54aeed -->
<div
v-if="index < timeLineDataList2.length - 1"
class="time_item_line"
:style="{
borderLeftColor: !compareTime(
timeLineDataList2[index + 1].milestoneTime
)
? '#8a8a8a'
: '#54aeed',
}"
></div>
</div>
<div class="time_item_right">
<div>{{ item.milestoneTime }}</div>
</div>
</div>
</div>
</el-card>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { Loading } from 'element-ui';
import { Loading } from "element-ui";
// import{kkk}from "@/static/web/viewer.mjs"
import {
milestonesGetList,
selWtqdFZ,
selFile,
downloadObject,
......@@ -248,54 +561,189 @@ import {
ossupload,
presignedUrl,
selFileList,
} from '@/api/indexzc'
import { MaterialsListKY } from '@/utils/cache'
} from "@/api/indexzc";
import { MaterialsListKY } from "@/utils/cache";
export default {
data() {
return {
resimg: '',
timeLineDataList1: [
// {
// milestoneTime: "2021-10",
// milestoneName: "中标日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "合同生效日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "启动计划开始日期",
// status: 2,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "系统开发计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "资源申请计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "第三方测试计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "架构审查计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "漏洞扫描计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "上线试运行计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "试运行验收计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "竣工验收计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "结算计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "决算计划开始日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "转资计划开始日期",
// status: 3,
// },
],
timeLineDataList2: [
// {
// milestoneTime: "2021-10",
// milestoneName: "启动实际结束日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "系统开发实际结束日期",
// status: 1,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "资源申请实际结束日期",
// status: 2,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "第三方测试实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "架构审查实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "漏洞扫描实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "上线试运行实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "试运行验收实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "竣工验收实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "结算实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "决算实际结束日期",
// status: 3,
// },
// {
// milestoneTime: "2021-10",
// milestoneName: "转资实际结束日期",
// status: 3,
// },
],
showMilestone: false,
resimg: "",
dialogFullScreen: false,
valuesel: '',
valuesel: "",
options: [],
dialogImageUrl: '',
dialogImageUrl: "",
fileList: [],
evalList: [
{
evalQues: '',
evalQues: "",
hideUploadEdit: false,
},
],
tabList: [
{ label: '可研', id: 0 },
{ label: "可研", id: 0 },
// { label: "计划", id: 1 },
{ label: '采购', id: 2 },
{ label: '合同', id: 3 },
{ label: '执行', id: 4 },
{ label: '结决算及转资', id: 5 },
{ label: "采购", id: 2 },
{ label: "合同", id: 3 },
{ label: "执行", id: 4 },
{ label: "结决算及转资", id: 5 },
],
tabListKY: [],
active: 0,
activeName: '0',
activeName: "0",
clqparams: {},
iframeUrl: '',
iframeUrl: "",
urlList: [],
questionList: [],
file: '',
file: "",
dialogVisible: false,
fullURL: '',
fullURL: "",
hideUploadEdit: false,
limitNum: 1,
disabled: false,
oldQuestionList: [], //对比列表
blobType: 'pdf', //bolb类型
projectName: '',
valuesel: '',
blobType: "pdf", //bolb类型
projectName: "",
valuesel: "",
dialogzhanshi: false,
wtmx: '',
hgx:"",
wtmx: "",
hgx: "",
showZoomViewDialog: false,
docxOptions: {
className: 'kaimo-docx-666', // string:默认和文档样式类的类名/前缀
className: "kaimo-docx-666", // string:默认和文档样式类的类名/前缀
inWrapper: false, // boolean:启用围绕文档内容的包装器渲染
ignoreWidth: false, // boolean:禁用页面的渲染宽度
ignoreHeight: false, // boolean:禁止渲染页面高度
......@@ -309,523 +757,727 @@ export default {
showChanges: false, // boolean:启用文档更改的实验性渲染(插入/删除)
debug: false, // boolean:启用额外的日志记录
},
}
};
},
mounted() {
this.clqparams = JSON.parse(this.$route.query.clqparams)
this.projectName = this.$route.query.projectName
this.init(this.clqparams)
this.getMilestonesList();
this.clqparams = JSON.parse(this.$route.query.clqparams);
this.projectName = this.$route.query.projectName;
this.init(this.clqparams);
},
methods: {
zhanshi() {
this.dialogzhanshi = true
compareTime(time) {
const date = new Date(time).setHours(0, 0, 0, 0);
const today = new Date().setHours(0, 0, 0, 0);
return date <= today; // 头一天或者当天
},
async getMilestonesList() {
const { projectId, contractNumber } = JSON.parse(
this.$route.query.clqparams
);
const params = {
projectCode: projectId,
contractNumber: contractNumber
// projectCode: "7322XT23005C", // projectId
// contractNumber: "SGLNXT00DKXX2310552", // contractNumber
};
const res = await milestonesGetList(params);
if (res.data.code === 200) {
// const mockdata = {
// code: 200,
// msg: "操作成功!",
// data: {
// dataList2: [
// {
// milestoneName: "启动实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "成果评审实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "试运行验收实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "结算实际结束日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "决算实际结束日期",
// milestoneTime: "2025-12-31",
// },
// {
// milestoneName: "转资实际结束日期",
// milestoneTime: "2025-12-31",
// },
// ],
// dataList1: [
// {
// milestoneName: "中标日期",
// milestoneTime: "2023-11-10",
// },
// {
// milestoneName: "合同生效日期",
// milestoneTime: "2023-12-06",
// },
// {
// milestoneName: "启动计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "成果评审计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "竣工验收计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "结算计划开始日期",
// milestoneTime: "2024-12-31",
// },
// {
// milestoneName: "决算计划开始日期",
// milestoneTime: "2025-12-31",
// },
// {
// milestoneName: "转资计划开始日期",
// milestoneTime: "2025-12-31",
// },
// ],
// },
// failed: false,
// };
const { dataList1, dataList2 } = res.data.data;
dataList1.forEach((item, index) => {
item["key"] = index + 1;
});
dataList2.forEach((item, index) => {
item["key"] = index + 1;
});
console.log(66666, dataList1, dataList2);
this.timeLineDataList1 = dataList1;
this.timeLineDataList2 = dataList2;
} else {
this.$message.error(res.data.msg)
}
},
showMilestoneDialog() {
this.showMilestone = true;
},
zoomViewDialog() {
this.showZoomViewDialog = true;
},
downloadPdf() {
const link = document.createElement("a");
link.href = this.iframeUrl;
link.download = "document.pdf";
link.click();
},
zoomIn() {
const iframe = this.$refs.pdfIframe[0];
const pdfWindow = iframe.contentWindow;
console.log("pdfWindow", iframe, pdfWindow);
// 假设 PDF.js 已经加载并且可以访问
if (pdfWindow.PDFViewerApplication) {
pdfWindow.PDFViewerApplication.zoomIn(); // 调用 PDF.js 的放大方法
} else {
console.error("PDF.js is not loaded.");
window.open(this.iframeUrl);
}
},
zanShi() {
this.dialogzhanshi = true;
},
//提交问题清单
async submitNexts() {
this.$confirm('您确定检查完所有流程并去提交?', '提示', {
confirmButtonText: '是',
cancelButtonText: '继续检查',
this.$confirm("您确定检查完所有流程并去提交?", "提示", {
confirmButtonText: "是",
cancelButtonText: "继续检查",
distinguishCancelAndClose: true,
type: 'warning',
type: "warning",
})
.then(() => {
this.save(2)
this.save(2);
})
.catch((action) => {})
.catch((action) => {});
},
// 放大图片
handlePictureCardPreview(file) {
console.log('点击放大')
this.dialogImageUrl = file
this.dialogVisible = true
console.log("点击放大");
this.dialogImageUrl = file;
this.dialogVisible = true;
},
// 删除图片
handleRemove(file, fileList) {
console.log(fileList, 'this.fileList')
console.log(fileList, "this.fileList");
if (this.fileList.length == 0) {
this.fileList = []
this.fileList = [];
} else {
let dl = this.fileList.indexOf(file)
this.fileList.splice(dl, 1)
let dl = this.fileList.indexOf(file);
this.fileList.splice(dl, 1);
}
this.hideUploadEdit = this.fileList.length >= this.limitNum
this.hideUploadEdit = this.fileList.length >= this.limitNum;
},
// on-change添加文件,上传成功和上传失败时都会被调用
handleEditChange(file, fileList) {
this.hideUploadEdit = fileList.length >= this.limitNum
this.hideUploadEdit = fileList.length >= this.limitNum;
},
// http-request自定义上传
ImgUploadSectionFile(param) {
this.param = param
this.param = param;
},
// before-upload上传文件之前的钩子,参数为上传的文件
// 若返回 false 或者返回 Promise 且被 reject,则停止上传
beforeAvatarUpload(file) {
this.file = file
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'
const isLt2M = this.file.size / 1024 < 1000
console.log(this.file.size / 1024, 'this.file.size this.file.size ')
this.file = file;
const isJPG = file.type === "image/jpeg" || file.type === "image/png";
const isLt2M = this.file.size / 1024 < 1000;
console.log(this.file.size / 1024, "this.file.size this.file.size ");
if (!isJPG) {
this.$message.error('上传图片只能是 JPG 或 PNG 格式!')
this.hideUploadEdit = false
this.$message.error("上传图片只能是 JPG 或 PNG 格式!");
this.hideUploadEdit = false;
}
if (!isLt2M) {
this.hideUploadEdit = false
this.$message.error('上传图片大小不能超过 1000k!')
this.hideUploadEdit = false;
this.$message.error("上传图片大小不能超过 1000k!");
}
return isJPG && isLt2M
return isJPG && isLt2M;
},
// 文件上传成功时的钩子
handleSuccess(file) {
// console.log(file);
const data = file.data
const data = file.data;
//然后数据、逻辑处理
},
showFullScreen() {
console.log(this.fileList, '4444')
this.fullURL = this.fileList[0].url
this.dialogVisible = true
console.log(this.fileList, "4444");
this.fullURL = this.fileList[0].url;
this.dialogVisible = true;
},
handleExceed() {
this.$message.warning(`只能选择一张图片`)
this.$message.warning(`只能选择一张图片`);
},
changexm(row, typeCode) {
this.downloadObject(this.options[row], typeCode)
console.log(row, '换文件')
this.downloadObject(this.options[row], typeCode);
console.log(row, "换文件");
},
async init(type) {
let params = {
projectStage: this.active * 1 + 1,
...type,
}
};
Promise.all([selFile(params), selWtqdFZ(params)]).then(async (res) => {
this.tabListKY = []
this.urlList = res[0].data
this.tabListKY = [];
this.urlList = res[0].data;
if (this.urlList.length > 0) {
this.urlList.forEach((item) => {
this.tabListKY.push({
typeText: item.materialName,
typeCode: item.mid,
})
})
this.activeName = this.tabListKY[0].typeCode
});
});
this.activeName = this.tabListKY[0].typeCode;
let resList = await selFileList({
...params,
typeCode: this.tabListKY[0].typeCode,
})
this.options = resList.data || []
});
this.options = resList.data || [];
if (this.options.length > 0) {
this.valuesel = this.options[0].name
this.downloadObject(this.options[0], this.tabListKY[0].typeCode)
this.valuesel = this.options[0].name;
this.downloadObject(this.options[0], this.tabListKY[0].typeCode);
} else {
this.blobType = 'png'
this.iframeUrl = '/nopdf.png'
this.blobType = "png";
this.iframeUrl = "/nopdf.png";
}
}
if (res[1].data) {
this.questionList = res[1].data.records
this.wtmx = res[1].data.MapkyXqfx
let counterNum = 0
this.questionList = res[1].data.records;
this.wtmx = res[1].data.MapkyXqfx;
let counterNum = 0;
this.questionList.forEach(async (item) => {
if (item.isProblem == 0) {
this.$set(item, 'checked', true)
this.changeChecked(item)
this.$set(item, "checked", true);
this.changeChecked(item);
}
let respon = await selWtmx({ qid: item.qid })
let respon = await selWtmx({ qid: item.qid });
counterNum++
counterNum++;
if (respon.data.records && respon.data.records.length > 0) {
respon.data.records.forEach(async (itemImg) => {
if (itemImg.url) {
let paramsImg = {
fileId: itemImg.id,
url: itemImg.url,
}
let resUrl = await presignedUrl(paramsImg)
this.$set(itemImg, 'fileList', [
};
let resUrl = await presignedUrl(paramsImg);
this.$set(itemImg, "fileList", [
{
url: resUrl.msg,
},
])
itemImg.hideUploadEdit = true
]);
itemImg.hideUploadEdit = true;
} else {
itemImg.hideUploadEdit = false
itemImg.hideUploadEdit = false;
}
})
this.$set(item, 'evalList', [...respon.data.records])
});
this.$set(item, "evalList", [...respon.data.records]);
} else {
this.$set(item, 'evalList', [
this.$set(item, "evalList", [
{
evalQues: '',
evalQues: "",
hideUploadEdit: false,
},
])
]);
}
if (counterNum == this.questionList.length) {
setTimeout(() => {
this.oldQuestionList = JSON.parse(JSON.stringify(this.questionList))
}, 300)
this.oldQuestionList = JSON.parse(
JSON.stringify(this.questionList)
);
}, 300);
}
})
});
}
})
});
},
working(type){
let options={
working(type) {
let options = {
fullscreen: true,
spinner: 'el-icon-loading',
customClass: 'iam-loading',
text:"智能分析中,请耐心等候...", //显示在加载图标下方的加载文案
background:'rgba(0,0,0,.7)', //遮罩背景色
}
let params = {
spinner: "el-icon-loading",
customClass: "iam-loading",
text: "智能分析中,请耐心等候...", //显示在加载图标下方的加载文案
background: "rgba(0,0,0,.7)", //遮罩背景色
};
console.log(2222, this.clqparams);
let params = {
projectStage: this.active * 1 + 1,
// hgx: 'hgx',
...this.clqparams,
}
let loadingInstance ='';
if(type=='work'){
this.hgx='hgx'
};
let loadingInstance = "";
if (type == "work") {
this.hgx = "hgx";
loadingInstance = Loading.service(options);
}
if( this.hgx='hgx'){
params.hgx='hgx'
if ((this.hgx = "hgx")) {
params.hgx = "hgx";
}
console.log(111111, params);
Promise.all([selFile(params), selWtqdFZ(params)]).then(async (res) => {
this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
if(type=='work'){
console.log('走了关闭')
loadingInstance.close();
}
});
this.tabListKY = []
this.urlList = res[0].data
this.$nextTick(() => {
// 以服务的方式调用的 Loading 需要异步关闭
if (type == "work") {
console.log("走了关闭");
loadingInstance.close();
}
});
this.tabListKY = [];
this.urlList = res[0].data;
if (this.urlList.length > 0) {
this.urlList.forEach((item) => {
this.tabListKY.push({
typeText: item.materialName,
typeCode: item.mid,
})
})
this.activeName = this.tabListKY[0].typeCode
});
});
this.activeName = this.tabListKY[0].typeCode;
let resList = await selFileList({
...params,
typeCode: this.tabListKY[0].typeCode,
})
this.options = resList.data || []
});
this.options = resList.data || [];
if (this.options.length > 0) {
this.valuesel = this.options[0].name
this.downloadObject(this.options[0], this.tabListKY[0].typeCode)
this.valuesel = this.options[0].name;
this.downloadObject(this.options[0], this.tabListKY[0].typeCode);
} else {
this.blobType = 'png'
this.iframeUrl = '/nopdf.png'
this.blobType = "png";
this.iframeUrl = "/nopdf.png";
}
} else {
// this.iframeUrl = "/nopdf.png";
}
if (res[1].data) {
this.questionList = res[1].data.records
this.wtmx = res[1].data.MapkyXqfx
let counterNum = 0
this.questionList = res[1].data.records;
this.wtmx = res[1].data.MapkyXqfx;
let counterNum = 0;
this.questionList.forEach(async (item) => {
if (item.isProblem == 0) {
this.$set(item, 'checked', true)
this.changeChecked(item)
this.$set(item, "checked", true);
this.changeChecked(item);
}
let respon = await selWtmx({ qid: item.qid })
let respon = await selWtmx({ qid: item.qid });
let paramsFX = {
batchId: this.clqparams.batchId,
projectId: this.clqparams.projectId,
projectStage: item.questionId,
}
let responfx = await selZnfx(paramsFX)
counterNum++
};
let responfx = await selZnfx(paramsFX);
counterNum++;
if (respon.data.records && respon.data.records.length > 0) {
respon.data.records.forEach(async (itemImg) => {
if (itemImg.url) {
let paramsImg = {
fileId: itemImg.id,
url: itemImg.url,
}
let resUrl = await presignedUrl(paramsImg)
this.$set(itemImg, 'fileList', [
};
let resUrl = await presignedUrl(paramsImg);
this.$set(itemImg, "fileList", [
{
url: resUrl.msg,
},
])
itemImg.hideUploadEdit = true
]);
itemImg.hideUploadEdit = true;
} else {
itemImg.hideUploadEdit = false
itemImg.hideUploadEdit = false;
}
})
this.$set(item, 'evalList', [...respon.data.records])
});
this.$set(item, "evalList", [...respon.data.records]);
} else {
this.$set(item, 'evalList', [
this.$set(item, "evalList", [
{
evalQues: '',
evalQues: "",
hideUploadEdit: false,
},
])
]);
}
if (responfx.data.records && responfx.data.records.length > 0) {
let znfxList = responfx.data.records.filter(async (item) => {
if (item.projectStage == '14') {
if (item.projectStage == "14") {
let paramsImg = {
url: item.checkDesc,
}
let resUrl = await presignedUrl(paramsImg)
};
let resUrl = await presignedUrl(paramsImg);
this.resimg = resUrl.msg
this.resimg = resUrl.msg;
}
if (item.checkDesc && item.type == 0) {
item.checkDesc = item.checkDesc.replace(/\n/g, '<br>')
item.checkDesc = item.checkDesc.replace(/\n/g, "<br>");
}
return item.checkDesc && item.type == 0
})
this.$set(item, 'znfxList', [...znfxList])
return item.checkDesc && item.type == 0;
});
this.$set(item, "znfxList", [...znfxList]);
let resfxList = responfx.data.records.filter((item) => {
return item.type == 1 || item.type == 2
})
return item.type == 1 || item.type == 2;
});
if (resfxList && resfxList.length > 0) {
let fzfxList = resfxList[0].checkDesc.split('\n')
this.$set(item, 'fzfxList', [...fzfxList])
let fzfxList = resfxList[0].checkDesc.split("\n");
this.$set(item, "fzfxList", [...fzfxList]);
}
} else {
this.$set(item, 'znfxList', [])
this.$set(item, 'fzfxList', [])
this.$set(item, "znfxList", []);
this.$set(item, "fzfxList", []);
}
if (counterNum == this.questionList.length) {
setTimeout(() => {
this.oldQuestionList = JSON.parse(JSON.stringify(this.questionList))
}, 300)
this.oldQuestionList = JSON.parse(
JSON.stringify(this.questionList)
);
}, 300);
}
})
});
}
})
});
},
async downloadObject(row, code) {
this.iframeUrl = ''
this.blobType = ''
let resUrl = await downloadObject({ fileId: row.id })
if (this.blobType == '') {
this.blobType = row.suffix
this.iframeUrl = "";
this.blobType = "";
let resUrl = await downloadObject({ fileId: row.id });
if (this.blobType == "") {
this.blobType = row.suffix;
}
const binaryData = []
binaryData.push(resUrl)
let URL = window.URL.createObjectURL(new Blob(binaryData, { type: 'application/pdf' }))
if (this.iframeUrl == '') {
this.iframeUrl = URL + '#view=FitH,top'
const binaryData = [];
binaryData.push(resUrl);
let URL = window.URL.createObjectURL(
new Blob(binaryData, { type: "application/pdf" })
);
if (this.iframeUrl == "") {
this.iframeUrl = URL + "#view=Fit,top";
// this.iframeUrl = URL + "#view=FitH,top&toolbar=0";
// setTimeout(() => {
// console.log('全屏预览');
// // const binaryData = [];
// // binaryData.push(res);
// // this.pdfUrl = window.URL.createObjectURL(new Blob(binaryData, {type: 'application/pdf'}));
// window.open(this.iframeUrl);
// }, 2000)
}
if (this.blobType == 'docx') {
let docx = require('docx-preview')
if (this.blobType == "docx") {
let docx = require("docx-preview");
this.$nextTick(() => {
docx.renderAsync(resUrl, document.getElementById(`word${code}`), null, this.docxOptions) // 渲染到页面预览
})
docx.renderAsync(
resUrl,
document.getElementById(`word${code}`),
null,
this.docxOptions
); // 渲染到页面预览
});
}
},
async handleClick(tab) {
let params = {
projectStage: this.active * 1 + 1,
hgx: 'hgx',
hgx: "hgx",
...this.clqparams,
}
this.options = []
this.valuesel = ''
this.iframeUrl = ''
console.log('切换', tab.index)
};
this.options = [];
this.valuesel = "";
this.iframeUrl = "";
console.log("切换", tab.index);
let resList = await selFileList({
...params,
typeCode: this.tabListKY[tab.index].typeCode,
})
this.options = resList.data || []
});
this.options = resList.data || [];
if (this.options.length > 0) {
this.valuesel = this.options[0].name
this.downloadObject(this.options[0], this.tabListKY[tab.index].typeCode)
this.valuesel = this.options[0].name;
this.downloadObject(
this.options[0],
this.tabListKY[tab.index].typeCode
);
} else {
this.blobType = 'png'
this.iframeUrl = '/nopdf.png'
this.blobType = "png";
this.iframeUrl = "/nopdf.png";
}
},
change(id) {
console.log(this.hgx,'3')
console.log(this.hgx, "3");
if (JSON.stringify(this.questionList) == JSON.stringify(this.oldQuestionList)) {
this.active = id * 1
if (
JSON.stringify(this.questionList) ==
JSON.stringify(this.oldQuestionList)
) {
this.active = id * 1;
// this.tabListKY = MaterialsListKY(id * 1 + 1);
// if(this.hgx=='hgx'){
// this.working(this.clqparams)
// }else{
// this.init(this.clqparams)
// }
this.init(this.clqparams)
return
this.init(this.clqparams);
return;
}
this.$confirm('是否保存?', '提示', {
confirmButtonText: '是',
cancelButtonText: '否',
this.$confirm("是否保存?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
distinguishCancelAndClose: true,
type: 'warning',
type: "warning",
})
.then(() => {
this.save('3', id)
this.save("3", id);
})
.catch((action) => {
console.log(action, 'actionaction')
if (action === 'cancel') {
this.active = id * 1
console.log(action, "actionaction");
if (action === "cancel") {
this.active = id * 1;
// this.tabListKY = MaterialsListKY(id * 1 + 1);
if(this.hgx=='hgx'){
this.working(this.clqparams)
}else{
this.init(this.clqparams)
}
if (this.hgx == "hgx") {
this.working(this.clqparams);
} else {
this.init(this.clqparams);
}
} else {
}
})
});
},
delInput(item, index) {
if (item.evalList.length <= 1) {
item.checked = true
this.$set(item, 'checked', true)
this.changeChecked(item)
return false
item.checked = true;
this.$set(item, "checked", true);
this.changeChecked(item);
return false;
}
item.evalList.splice(index, 1)
item.evalList.splice(index, 1);
},
adopt(item, index, items) {
console.log(item,'采纳')
console.log(item, "采纳");
if (item.evalList.length == 1 && !item.evalList[0].evalQues) {
item.evalList[0].evalQues = items
item.evalList[0].evalQues = items;
} else {
item.evalList.push({
evalQues: items,
hideUploadEdit: false,
})
});
}
},
addInput(item) {
if (item.evalList[0].disabled == true) {
console.log('选择了未发现问题')
return
console.log("选择了未发现问题");
return;
}
item.evalList.push({
data: '',
evalQues: '',
})
data: "",
evalQues: "",
});
},
changeChecked(item) {
if (item.checked) {
this.$set(item, 'evalList', [
this.$set(item, "evalList", [
{
ideval: '',
evalQues: '',
ideval: "",
evalQues: "",
hideUploadEdit: false,
disabled: true,
},
])
this.$set(item, 'isProblem', 0)
]);
this.$set(item, "isProblem", 0);
// this.$set(item, "Id", 0);
} else {
item.evalList[0].disabled = false
this.$set(item, 'isProblem', 1)
item.evalList[0].disabled = false;
this.$set(item, "isProblem", 1);
}
},
cancel() {
this.$router.push({
path: '/assesszc/auxiliaryInspection',
})
path: "/assesszc/auxiliaryInspection",
});
},
async save(type, id) {
this.questionList.forEach((item) => {
let evals = ''
let evals = "";
item.evalList.forEach((childItem) => {
evals = evals.concat(childItem.evalQues + ',')
})
evals = evals.slice(0, -1)
item.evalQues = evals
evals = evals.concat(childItem.evalQues + ",");
});
evals = evals.slice(0, -1);
item.evalQues = evals;
// if (item.evalList.length >= 1 && item.evalList[0].evalQues) {
// item.isProblem = 1;
// }
const isProblem = item.evalList.filter((v) => v.evalQues).length
item.isProblem = isProblem > 0 ? 1 : 0
})
console.log(this.questionList, 'questionList')
const isProblem = item.evalList.filter((v) => v.evalQues).length;
item.isProblem = isProblem > 0 ? 1 : 0;
});
console.log(this.questionList, "questionList");
let params = {
list: this.questionList,
...this.clqparams,
}
console.log(params, '保存')
};
console.log(params, "保存");
// return
let res = await bcevalQuesInfo(params)
if (res.code == '200') {
this.$message('保存成功')
let res = await bcevalQuesInfo(params);
if (res.code == "200") {
this.$message("保存成功");
if (type && type == 2) {
this.$router.push({
path: '/assesszc/Compliancefz',
path: "/assesszc/Compliancefz",
query: {
clqparams: JSON.stringify(this.clqparams),
projectName: this.projectName,
},
})
});
} else {
this.active = id * 1
if(this.hgx=='hgx'){
this.working(this.clqparams)
}else{
this.init(this.clqparams)
}
this.active = id * 1;
if (this.hgx == "hgx") {
this.working(this.clqparams);
} else {
this.init(this.clqparams);
}
}
} else {
this.$message('保存失败')
this.$message("保存失败");
}
},
fileupdate(res, items) {
this.file = res.file
this.submitFile(res, items)
this.file = res.file;
this.submitFile(res, items);
},
submitFile(item, list) {
console.log(list, 'list')
console.log(this.file, '多少k')
console.log(list, "list");
console.log(this.file, "多少k");
if (this.file) {
const formData = new FormData()
formData.append('file', this.file)
const formData = new FormData();
formData.append("file", this.file);
ossupload(formData)
.then((response) => {
console.log(response, '上传图片')
if (response.code == '200') {
console.log(response, "上传图片");
if (response.code == "200") {
// list.url = response.data.downLoadUrl;
// list.fileId= response.data.fileId
this.$set(list, 'url', response.data.downLoadUrl)
this.$set(list, 'fileId', response.data.fileId)
this.$message('上传成功')
this.$set(list, "url", response.data.downLoadUrl);
this.$set(list, "fileId", response.data.fileId);
this.$message("上传成功");
} else {
this.$message('上传失败')
this.$message("上传失败");
}
})
.catch((error) => {
console.error(error)
this.$message('上传失败')
})
console.error(error);
this.$message("上传失败");
});
}
},
},
}
};
</script>
<style lang="scss">
.time_line_wrap {
display: flex;
flex-direction: column;
align-items: center;
position: relative;
padding: 20px 10px;
}
.time_item_left {
margin-bottom: 24px;
margin-top: 1px;
flex: 60;
text-align: end;
}
.time_item_center {
display: flex;
flex-direction: column;
align-items: center;
padding: 0 12px;
}
.time_item_right {
margin-bottom: 24px;
margin-top: 2px;
flex: 40;
text-align: left;
}
.time_item_line {
position: relative;
height: calc(100% - 18px);
min-height: 20px;
border-left-width: 2px;
// border-left-color: #f2f2f3;
border-left-style: solid;
}
.time_item_dot {
// border: 2px solid #babbc0;
border-radius: 50%;
width: 18px;
height: 18px;
flex-shrink: 0;
}
</style>
<style lang="scss" scoped>
.pdf-container {
position: relative;
}
.pdf-controls {
position: absolute;
top: 10px;
right: 10px;
z-index: 10;
}
.main {
font-size: 14px;
position: relative;
......@@ -836,6 +1488,7 @@ export default {
display: flex;
flex-direction: column;
}
.close {
position: absolute;
right: 20px;
......@@ -847,6 +1500,7 @@ export default {
// color: #fff;
}
}
.title {
text-align: left;
background-color: #fff;
......@@ -855,6 +1509,7 @@ export default {
color: grey;
font-size: 15px;
}
.continer {
width: 100%;
background-color: #f5f5f6;
......@@ -865,12 +1520,14 @@ export default {
padding-bottom: 0;
min-height: 0;
height: 100%;
.top {
width: 70%;
margin: 0 auto;
position: relative;
padding-top: 15px;
}
.content {
width: 100%;
margin-top: 10px;
......@@ -880,6 +1537,7 @@ export default {
min-height: 0;
padding-bottom: 50px;
}
.left {
width: 49%;
min-height: 100px;
......@@ -892,12 +1550,15 @@ export default {
min-height: 0;
display: flex;
flex-direction: column;
.el-tabs__content {
flex: 1;
.el-tab-pane {
display: flex;
flex-direction: column;
height: 100%;
.iframeDiv {
flex: 1;
}
......@@ -905,22 +1566,26 @@ export default {
}
}
}
.right {
width: 50%;
margin-left: 10px;
background: #fff;
}
.rightscoll {
// height: 610px;
overflow-y: auto;
padding: 10px;
}
.rightscollBig {
// height: 680px;
overflow-y: auto;
padding: 10px;
}
}
::v-deep.el-step__icon {
color: #0d867f;
border-color: #0d867f;
......@@ -928,6 +1593,7 @@ export default {
height: 20px;
// border:3px solid #0d867f;
}
::v-deep.el-icon-caret-right {
font-size: 30px;
line-height: 23px;
......@@ -935,21 +1601,26 @@ export default {
color: #0d867f;
z-index: 4;
}
::v-deep.el-step.is-horizontal .el-step__line {
height: 1px;
// margin-right: -20px !important;
z-index: 1;
}
::v-deep.el-step__line {
color: gainsboro;
}
.el-step__head.is-wait {
color: #0d867f;
border-color: #0d867f;
}
::v-deep.el-step__title {
color: #000;
}
::v-deep.el-step__title.is-process {
color: #0d867f;
}
......@@ -957,9 +1628,11 @@ export default {
::v-deep .is-wait .el-step__icon-inner {
display: none;
}
::v-deep.upload-demo {
display: inline-block;
}
.tableTitle {
background: #0d867f;
color: #f5f5f6;
......@@ -974,7 +1647,6 @@ export default {
justify-content: space-between;
align-items: center;
padding-right: 20px;
}
.rightContent {
......@@ -982,12 +1654,15 @@ export default {
overflow-y: auto;
text-align: left;
h3 {
margin: 0;
}
p {
margin: 5px 0;
}
.question {
border: 1px solid gainsboro;
padding: 5px;
......@@ -996,12 +1671,14 @@ export default {
color: gray;
font-size: 12px;
}
.el-textarea {
width: 65%;
vertical-align: top;
}
}
}
.el-button--primary {
color: #ffffff;
background-color: #0d867f;
......@@ -1011,6 +1688,7 @@ export default {
margin-left: 10px;
vertical-align: top;
}
.el-button--info {
color: #ffffff;
// background-color: #0d867f;
......@@ -1020,19 +1698,23 @@ export default {
margin-left: 10px;
vertical-align: top;
}
.el-icon-circle-plus {
font-size: 45px;
vertical-align: middle;
color: #0d867f;
}
.inputDiv {
margin-top: 5px;
}
.addBtn {
display: flex;
justify-content: flex-end;
// justify-content: space-between;
}
.Btn {
// width: calc(100% - 276px) !important;
width: 100%;
......@@ -1045,6 +1727,7 @@ export default {
line-height: 50px;
box-sizing: border-box;
margin: 0;
span {
display: inline-block;
width: 89px;
......@@ -1057,18 +1740,21 @@ export default {
border: 1px solid #0d867f;
color: #fff;
}
span:first-of-type {
border: 1px solid grey;
color: #000;
background-color: #fff;
}
}
.quesznfx {
background-color: rgba(255, 248, 226, 1);
color: #ff5a2e;
font-size: 12px;
padding: 5px;
margin-bottom: 10px;
.el-textarea {
width: 65%;
vertical-align: top;
......@@ -1078,9 +1764,11 @@ export default {
::v-deep.uploadBox_hide .el-upload--picture-card {
display: none;
}
::v-deep.upload_box {
display: inline-block;
}
::v-deep.el-upload--picture-card {
width: 80px;
height: 40px;
......@@ -1088,83 +1776,96 @@ export default {
margin-left: 10px;
border: none;
}
.blobImg {
width: 100%;
img {
text-align: center;
width: 80%;
}
}
.docDiv {
width: 100%;
height: 600px;
overflow: auto;
}
.iframeDiv {
width: 80%;
height: 50vh;
margin: auto;
display: block;
}
.iframeDivBig {
width: 80%;
height: 66vh;
margin: auto;
display: block;
}
.opt {
height: 40px;
width: 100%;
text-align: left;
padding-left: 10px;
::v-deep .el-input__inner {
width: 600px;
}
}
::v-deep .docx-wrapper {
padding: 0 !important;
}
::v-deep .docx {
// width: 100% !important;
display: table !important;
padding: 2em 1em 0 !important;
margin: 0 auto !important;
}
::v-deep.kaimo-docx-666 {
margin: 0 auto !important;
text-align: center;
}
.dialogscroll {
height: 65vh;
overflow-y: auto;
}
.msg {
vertical-align: middle;
line-height: 33px;
}
::v-deep .el-dialog__header {
background-color: #0d867f;
padding-bottom: 20px;
text-align: left;
border-radius: 10px 10px 0 0;
.el-dialog__title {
color: #fff;
}
}
::v-deep .el-dialog {
border-radius: 10px;
// margin-top: 3vh !important;
// margin-left: 3vw !important;
}
.noShow {
display: none;
}
.resimg {
display: inline-block;
width: 100px;
}
.working{
position: absolute;
left: -100px;
}
</style>
......@@ -865,7 +865,7 @@ export default {
this.$refs["multipleTableZJ"].toggleRowSelection(row);
this.addZJList = this.$refs.multipleTableZJ.selection;
} else {
this.$message.warning("项目编码或合同编码为空");
this.$message.warning("项目编码或合同编码为空2");
}
},
timeChange(time) {
......
......@@ -455,7 +455,7 @@ export default {
checkedList: [],
yearsList: generateYearOptions(),
ruleForm: {
projectCode: "7322XT23005C",
projectCode: "",
projectName: "",
issueYear: "",
constructionForm: "",
......
<template>
<div class="mian">
<div class="head-container">
<div class="head-container">
<div class="logo" style="z-index: 10">
<div class="logo-inner">
<img src="../../assets/logo.png" alt="" />
......@@ -9,6 +9,34 @@
</div>
<div class="right">
<div class="head">
<div
style="margin-right: 20px; cursor: pointer"
@click="showMessageDialog"
>
<el-badge :value="messageNum" :max="99" class="item">
<svg
t="1739518743824"
class="icon"
:fill="messageNum > 0 ? 'red' : 'gray'"
style="width: 20px; height: 20px"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1670"
>
<path
d="M951.925029 807.043657l-80.310858-111.850057V457.201371c0-183.281371-146.285714-336.7936-336.457142-350.632228V76.1856a29.257143 29.257143 0 0 0-58.514286 0v30.529829c-175.542857 14.730971-321.828571 167.818971-321.828572 350.485942v237.9776l-81.173942 113.2544c-12.741486 17.832229-14.584686 33.923657-4.549486 53.408915s29.988571 24.385829 51.902171 24.385828h782.7456c21.9136 0 40.594286-4.900571 50.629486-24.385828s10.298514-36.9664-2.442971-54.798629zM120.992914 827.728457l92.335543-113.795657v-256.731429c0-160.168229 133.032229-302.3872 297.764572-302.3872h2.545371c164.746971 0 299.446857 142.218971 299.446857 302.3872v256.7168l90.638629 113.795658H120.992914z"
fill=""
p-id="1671"
></path>
<path
d="M689.239771 291.693714c-6.407314-4.959086-14.189714-3.774171-19.1488 2.589257-4.959086 6.392686-5.880686 15.5648 0.482743 20.523886 35.605943 27.604114 54.740114 70.5536 54.740115 114.907429v143.842743a14.628571 14.628571 0 1 0 29.257142 0v-143.842743c0.014629-53.321143-22.674286-104.916114-65.3312-138.020572zM627.317029 255.063771c-17.642057-5.178514-36.9664-12.478171-55.881143-12.478171h-1.4336c-8.0896 0-13.9264 11.117714-13.9264 19.207314s7.255771 16.910629 15.345371 16.910629c16.164571 0 32.650971 3.4816 47.659886 7.8848 1.375086 0.394971 2.750171 1.155657 4.110628 1.155657 6.334171 0 12.170971-6.129371 14.043429-12.507429 2.282057-7.767771-2.165029-17.905371-9.918171-20.1728zM599.259429 915.499886h-175.542858a29.257143 29.257143 0 0 0 0 58.514285h175.542858a29.257143 29.257143 0 0 0 0-58.514285z"
fill=""
p-id="1672"
></path>
</svg>
</el-badge>
</div>
<!-- <el-select v-model="userMock" placeholder="请选择" @change="changeUser" >
<el-option
v-for="(item, index) in userMockList"
......@@ -20,8 +48,8 @@
<div style="margin-right: 5px">
<img src="../../assets/user.png" alt="user" />
</div>
<div style="margin-right: 35px" >您好,管理员</div>
<div style="margin-right: 35px">您好,管理员</div>
<div style="margin-right: 5px">
<img src="../../assets/exit.png" alt="exit" />
</div>
......@@ -29,67 +57,241 @@
</div>
<div class="menu no-select">
<div class="right-angle-triangle"></div>
<div v-if="!false" class="just">
<div id="home" @click="navigateToChild('1','/home')" :class="active=='1'?'active':''">
<div v-if="false" class="just">
<div
id="home"
@click="navigateToChild('1', '/home')"
:class="active == '1' ? 'active' : ''"
>
<span class="iconfont">&#xe608;</span>&nbsp;主页
</div>
<div id="lxtc" :class="active=='2'?'active':''">
<div id="lxtc" :class="active == '2' ? 'active' : ''">
<span class="between iconfont">&#xe615;</span>&nbsp;立项统筹中心
</div>
<div id="xmjg" :class="active=='3'?'active':''">
<div id="xmjg" :class="active == '3' ? 'active' : ''">
<span class="between iconfont">&#xe60b;</span>&nbsp;项目建管中心
</div>
<div id="jggk" :class="active=='4'?'active':''">
<div id="jggk" :class="active == '4' ? 'active' : ''">
<span class="between iconfont">&#xe60c;</span>&nbsp;架构管控中心
</div>
<div id="hpg" @click="navigateToChild('5','/mainLayout')" :class="active=='5'?'active':''">
<span class="between iconfont" >&#xe612;</span>&nbsp;后评估管控中心
<div
id="hpg"
@click="navigateToChild('5', '/mainLayout')"
:class="active == '5' ? 'active' : ''"
>
<span class="between iconfont">&#xe612;</span>&nbsp;后评估管控中心
</div>
<div id="zhfx" :class="active=='6'?'active':''" @click="navigateToChild('6','/analysisCore')">
<div
id="zhfx"
:class="active == '6' ? 'active' : ''"
@click="navigateToChild('6', '/analysisCore')"
>
<span class="between iconfont">&#xe603;</span>&nbsp;综合分析中心
</div>
<div id="xtgl" :class="active=='7'?'active':''">
<div id="xtgl" :class="active == '7' ? 'active' : ''">
<span class="between iconfont">&#xe60f;</span>&nbsp;系统管理
</div>
</div>
</div>
</div>
</div>
<router-view></router-view>
<router-view></router-view>
<!-- <MainLayout class="continer">
<router-view></router-view>
</MainLayout> -->
<el-dialog
:visible.sync="showMessage"
title="消息列表"
width="90%"
:modal-append-to-body="true"
:append-to-body="true"
:fullscreen="false"
@close="closeMessage"
>
<div style="display: flex; flex-direction: column; gap: 10px;">
<div
style="
display: flex;
flex-direction: row;
align-items: center;
gap: 10px;
"
>
<!-- <div>消息提醒 {{ messageNum }}</div> -->
<div><el-button type="primary" @click="readWhole" size="small">一键已读</el-button></div>
</div>
<div>
<el-table
@selection-change="handleSelectionChange"
@row-click="
(row, column, event) =>
handleRowClick(row, column, event, 'multipleTable')
"
ref="multipleTable"
:header-cell-style="{ background: '#f5f5f5' }"
header-cell-class-name="custom-th-background"
:data="tableData"
style="width: 100%; box-sizing: border-box"
border
stripe
>
<el-table-column fixed label="序号" width="55" type="index" align="center"/>
<!-- <el-table-column fixed type="selection" /> -->
<el-table-column prop="projectCode" label="项目编码" width="150" align="center"/>
<el-table-column
prop="projectName"
label="项目名称"
width="120"
show-overflow-tooltip
align="center"
/>
<el-table-column align="center" prop="issueYear" label="项目年度" width="100" />
<el-table-column align="center" prop="projectType" label="项目类型" width="100">
<template slot-scope="scope">
<div v-if="scope.row.projectType == 1">咨询设计类</div>
<div v-if="scope.row.projectType == 2">开发实施类</div>
<div v-if="scope.row.projectType == 3">业务运营类</div>
<div v-if="scope.row.projectType == 4">数据工程类</div>
<div v-if="scope.row.projectType == 5">产品购置类</div>
</template>
</el-table-column>
<el-table-column
prop="constructionForm"
label="建设形式"
width="90"
align="center"
>
<template slot-scope="scope">
<div v-if="scope.row.constructionForm == 1">独立建设</div>
<div v-if="scope.row.constructionForm == 2">统推</div>
<div
v-if="
scope.row.constructionForm == 3 ||
scope.row.constructionForm == 4
"
>
自建
</div>
</template>
</el-table-column>
<el-table-column
prop="currentProgress"
label="当前进度"
width="90"
align="center"
/>
<el-table-column
prop="contractNumber"
label="合同编码"
width="90"
align="center"
show-overflow-tooltip
/>
<el-table-column
prop="contractName"
label="合同名称"
width="90"
align="center"
show-overflow-tooltip
/>
<el-table-column prop="createTime" align="center" label="提醒时间" width="110" />
<el-table-column prop="status" align="center" label="状态" width="100">
<template slot-scope="scope">
{{ scope.row.status === 1 ? "未读" : "已读" }}
</template>
</el-table-column>
<el-table-column
prop="materialName"
label="未上传材料"
width="100"
align="center"
show-overflow-tooltip
/>
<el-table-column fixed="right" label="操作" align="center" min-width="120">
<template slot-scope="scope">
<el-button link type="primary" @click="bingoOprate(scope.row)" size="small"
>操作</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 15, 20, 50, 100]"
:page-size="1000"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
style="text-align: center; margin-right: 100px"
>
</el-pagination>
</div>
</el-dialog>
</div>
</template>
<script>
import MainLayout from "./mainLayout";
import { getMessageListApi, updateMessageApi, readWholwMsg } from "@/api/indexzc";
// import tableMixin from '@/mixins/table.mixin.js'
export default {
// mixins: [tableMixin],
components: {
MainLayout,
},
data() {
return {
currentPage: 1,
pageSize: 10,
currentPagetjcl: 1,
pageSizetjcl: 10,
total: 0,
tableData: [
{
date: "2016-05-01",
status: 1,
name: "Tom",
state: "California",
city: "Los Angeles",
address: "No. 189, Grove St, Los Angeles",
zip: "CA 90036",
tag: "Office",
},
{
date: "2016-05-01",
status: 1,
name: "Tom",
state: "California",
city: "Los Angeles",
address: "No. 189, Grove St, Los Angeles",
zip: "CA 90036",
tag: "Office",
},
],
showMessage: false,
messageNum: 0,
userMock: 1, // 角色
userMockList: [
{
label: '超管',
id: 1
label: "超管",
id: 1,
},
{
label: '发起人',
id: 2
label: "发起人",
id: 2,
},
{
label: '专家',
id: 3
label: "专家",
id: 3,
},
{
label: '项目负责人',
id: 4
label: "项目负责人",
id: 4,
},
],
active:'5',
active: "5",
headerList: [
{
name: "主页",
......@@ -129,30 +331,129 @@ export default {
],
};
},
mounted(){
if(this.$route.path=='/analysisCore'){
this.active=6
created () {
this.getMessageList();
},
mounted() {
if (this.$route.path == "/analysisCore") {
this.active = 6;
}
// this.$router.push({ path:" /mainLayout" });
},
methods:{
changeUser(val){
const { label } = this.userMockList.find(item => item.id === val)
console.log('changeUser', val, label);
methods: {
async readWhole() {
// 一键已读
this.$confirm('确认已读所有消息, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(async () => {
let res = await readWholwMsg()
// console.log('res', res);
if (res.data.code == 0) {
this.$message({
type: 'success',
message: '已读所有消息成功!',
})
} else {
this.$message({
type: 'info',
message: '已读失败!',
})
}
}).catch(() => {
this.$message({
type: 'info',
message: '已取消已读所有',
})
})
},
navigateToChild(num,pushUrl){
this.active=num
this.$router.push({ path: pushUrl });
async bingoOprate(row) {
const a = await updateMessageApi([row.id])
this.showMessage = false;
this.$router.push({
path: "/assesszc/projectView",
query: {
projectId: row.projectCode,
// projectId: '7422XT230022',
},
});
},
changeSelect(){
handleRowClick(row, column, event, ref) {
console.log("column", column);
if (column.label == "操作") {
return;
// this.showMessage = false
// this.$router.push({path: '/assesszc/projectView', query: {
// projectId: row.projectCode,
// // projectId: '7422XT230022',
// }})
} else {
this.$refs[ref].toggleRowSelection(row);
}
},
}
async getMessageList() {
let params = {
current: this.currentPage,
pageSize: this.pageSize,
};
console.log(params);
let res = await getMessageListApi(params);
if (res.code == "200") {
this.tableData = res.data.records;
this.messageNum = res.data.count * 1
this.total = res.data.count * 1;
}
},
handleSizeChange(val) {
this.pageSize = val;
this.getMessageList();
},
handleCurrentChange(val) {
this.currentPage = val;
this.getMessageList();
},
handleSelectionChange(selection) {
console.log("hand", selection);
},
async showMessageDialog() {
this.currentPage = 1;
await this.getMessageList();
this.showMessage = true;
},
closeMessage() {
this.currentPage = 1;
},
changeUser(val) {
const { label } = this.userMockList.find((item) => item.id === val);
console.log("changeUser", val, label);
},
navigateToChild(num, pushUrl) {
this.active = num;
this.$router.push({ path: pushUrl });
},
changeSelect() {},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__header {
background-color: #0d867f;
padding-bottom: 20px;
text-align: left;
border-radius: 10px 10px 0 0;
.el-dialog__title {
color: #fff;
}
}
::v-deep .el-dialog {
border-radius: 10px;
// margin-top: 3vh !important;
// margin-left: 3vw !important;
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
......@@ -217,8 +518,6 @@ export default {
-moz-osx-font-smoothing: grayscale;
}
.head-container {
display: flex;
width: 100%;
......@@ -367,13 +666,10 @@ export default {
::-webkit-scrollbar-track-piece {
background-color: #f5f5f5;
}
.mian{
.mian {
// width: 100%;
// height: 100vh;
height: 100%;
overflow: auto;
}
</style>
\ No newline at end of file
</style>
......@@ -9,7 +9,7 @@
<ContinerView class="continer" id="myElement">
<router-view></router-view>
</ContinerView>
<div class="changeqx">
<div v-if="false" class="changeqx">
<el-menu
router
class="el-menu-vertical-demo"
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!