Commit 83650423 authored by tianhongyang's avatar tianhongyang

🐞 fix(咨询机构跳转参数变为query传参):

parent d569e9cd
import { Message } from "element-ui";
import { parseTime } from './ruoyi';
import { router } from "@/router";
/**
* 表格时间格式化
......@@ -924,5 +925,10 @@ export const detailSideBar = new Map([
["cooperationList", "cooperationRecord"],
// 内部合作 准入情况
["approveInfo", "accessCondition"],
])
]);
export const tableContainerFixed = (scrollBarContainer = "",) => {
}
<template>
<div class="consulting-agency-container">
<el-form :model="comProjectDetailInfo" :rules="rules" :inline-message="false" class="basic-engineering-information-inner">
<el-form :model="comProjectDetailInfo" :rules="rules" :show-message="false" class="basic-engineering-information-inner">
<!-- 基础信息 -->
<div class="project-basic-information">
<div class="info-module-title"><span>基础信息</span></div>
......@@ -14,15 +14,13 @@
<tr>
<td class="table-key">咨询机构名称</td>
<td>
<transition mode="out-in" name="edit-fade">
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBody && comProjectDetailInfo.advisoryBody.advisoryBodyName ? comProjectDetailInfo.advisoryBody.advisoryBodyName : "-"}}
</div>
<el-form-item label="" v-if="comIsModify">
<el-input v-model="comProjectDetailInfo.advisoryBody.advisoryBodyName" clearable v-focus placeholder="请输入完整咨询机构名称"
@input="searchConsulting"></el-input>
</el-form-item>
</transition>
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBody && comProjectDetailInfo.advisoryBody.advisoryBodyName ? comProjectDetailInfo.advisoryBody.advisoryBodyName : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBody.advisoryBodyName">
<el-input v-model="comProjectDetailInfo.advisoryBody.advisoryBodyName" clearable v-focus placeholder="请输入完整咨询机构名称"
@input="searchConsulting"></el-input>
</el-form-item>
</td>
<td class="table-key">法人代表</td>
<td>
......@@ -54,17 +52,32 @@
<tr>
<td class="table-key">项目负责人</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeader ? comProjectDetailInfo.advisoryBodyProject.projectLeader : "-"}}
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeader ? comProjectDetailInfo.advisoryBodyProject.projectLeader : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBodyProject.projectLeader">
<el-input v-model="comProjectDetailInfo.advisoryBodyProject.projectLeader" clearable placeholder="请输入项目负责人"></el-input>
</el-form-item>
</td>
<td class="table-key">项目负责人专业</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor ? comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor : "-"}}
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor ? comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBodyProject.projectLeaderMajor">
<el-input v-model="comProjectDetailInfo.advisoryBodyProject.projectLeaderMajor" clearable placeholder="请输入项目负责人专业"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td class="table-key">联系电话</td>
<td colspan="3">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone ? comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone : "-"}}
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone ? comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBodyProject.projectLeaderPhone">
<el-input v-model="comProjectDetailInfo.advisoryBodyProject.projectLeaderPhone" clearable placeholder="请输入项目负责人联系电话"></el-input>
</el-form-item>
</td>
</tr>
</table>
......@@ -82,17 +95,39 @@
<tr>
<td class="table-key">结算开始时间</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.settleStartTime ? comProjectDetailInfo.advisoryBodyProject.settleStartTime : "-"}}
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.settleStartTime ? comProjectDetailInfo.advisoryBodyProject.settleStartTime : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBodyProject.settleStartTime">
<el-date-picker v-model="comProjectDetailInfo.advisoryBodyProject.settleStartTime" type="datetime" placeholder="选择结算开始时间"
:value-format="'yyyy-MM-dd HH:mm:ss'">
</el-date-picker>
</el-form-item>
</td>
<td class="table-key">结算完成时间</td>
<td>
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.settleFinishTime ? comProjectDetailInfo.advisoryBodyProject.settleFinishTime : "-"}}
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBodyProject && comProjectDetailInfo.advisoryBodyProject.settleFinishTime ? comProjectDetailInfo.advisoryBodyProject.settleFinishTime : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBodyProject.settleFinishTime">
<el-date-picker v-model="comProjectDetailInfo.advisoryBodyProject.settleFinishTime" type="datetime" placeholder="选择结算完成时间"
:value-format="'yyyy-MM-dd HH:mm:ss'">
</el-date-picker>
</el-form-item>
</td>
</tr>
<tr>
<td class="table-key">是否为终审单位</td>
<td colspan="3">
{{comProjectDetailInfo.advisoryBodyProject && statusCheck(comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit) ? statusCheck(comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit) : "-"}}
<div class="normal-value" v-if="!comIsModify">
{{comProjectDetailInfo.advisoryBodyProject && statusCheck(comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit) ? statusCheck(comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit) : "-"}}
</div>
<el-form-item label="" v-if="comIsModify" prop="advisoryBodyProject.isFinalJudgeUnit">
<el-radio-group v-model="comProjectDetailInfo.advisoryBodyProject.isFinalJudgeUnit">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
</td>
</tr>
</table>
......@@ -102,6 +137,7 @@
</template>
<script>
import { searchConsultingApi } from "@/api/consultingOrgManagement";
import { elementMessageSingleton } from "@/utils";
export default {
name: "consultingAgency",
props: {
......@@ -133,15 +169,26 @@ export default {
}
},
data() {
const phoneValidator = (rule, value, callback) => {
const phoneReg = /^1[3-9]\d{9}$/;
if (!value && !value?.toString()?.trim()) {
return callback(new Error(`请输入项目负责人联系电话`));
}
if (value && !phoneReg.test(value)) {
return callback(new Error(`请输入正确的手机号码`));
}
return callback();
};
return {
comIsModify: this.isModify,
comProjectDetailInfo: JSON.parse(JSON.stringify(this.projectDetailInfo)),
oldComProjectDetailInfo: JSON.parse(JSON.stringify(this.projectDetailInfo)),
rules: {
"advisoryBody.advisoryBodyName": [{ required: true, trigger: ["blur", "change"], message: "咨询机构名称不能为空" }],
"advisoryBodyProject.projectLeaderPhone": [{ required: true, trigger: ["blur", "change"], validator: phoneValidator }],
},
tableKeyWidth: 0,
searchTimer: null
searchTimer: null,
};
},
//可访问data属性
......@@ -196,13 +243,54 @@ export default {
async searchConsultingHandle(keywords) {
try {
const searchResult = await searchConsultingApi(keywords);
if (searchResult.code == 200) {
console.log(searchResult);
if (searchResult.code == 200 && searchResult.data) {
const _temp = JSON.parse(JSON.stringify(searchResult.data));
this.updateTemplate(_temp);
}
} catch (error) {
console.log(error);
}
},
updateTemplate(data) {
const updateMap = new Map([
["advisoryBody.advisoryBodyName", "advisoryBodyName"],
["advisoryBody.advisoryBodyCid", "advisoryBodyCid"],
["advisoryBody.businessScope", "businessScope"],
["isNewAdvisoryBody", "isNewAdvisoryBody"],
["corporatePerson", "corporatePerson"],
["regAddress", "regAddress"],
]);
this.setTemplateData(updateMap, data);
},
setTemplateData(mapData, data) {
/**
* @type {Map<string,string>}
*/
const _mapTemp = mapData;
// 寻找对应的赋值对象
for (const [key, value] of _mapTemp) {
const keys = key.split(".");
const len = keys.length;
if (len == 1) {
this.$set(this.comProjectDetailInfo, key, data[value]);
continue;
}
const currentObjectKey = keys[len - 2];
const currentKey = keys[len - 1];
const currentObject = this.findCurrent(this.comProjectDetailInfo, currentObjectKey);
this.$set(currentObject, currentKey, data[value]);
}
},
findCurrent(originData, key) {
for (const _key in originData) {
if (_key == key) {
return originData[_key];
}
if (Object.prototype.toString.call(originData[_key]) == "[object Object]") {
return this.findCurrent(originData[_key], key);
}
}
},
clearSearchTimer() {
clearTimeout(this.searchTimer);
this.searchTimer = null;
......@@ -280,6 +368,16 @@ export default {
margin-bottom: 0px;
z-index: 9;
&.is-error {
.el-form-item__content {
.el-input {
.el-input__inner {
border-color: #ff4949;
}
}
}
}
.el-form-item__content {
height: 100%;
font-size: 12px;
......@@ -306,6 +404,34 @@ export default {
border: 1px solid #0081ff;
}
}
.el-date-editor {
width: 100%;
.el-input__prefix {
display: none;
}
}
.el-radio-group {
display: flex;
align-items: center;
padding-left: 12px;
box-sizing: border-box;
.el-radio__input.is-checked .el-radio__inner {
border-color: #0081ff;
background: #0081ff;
}
.el-radio__input.is-checked + .el-radio__label {
color: #0081ff;
}
.el-radio__inner:hover {
border-color: #0081ff;
}
}
}
}
}
......
......@@ -56,7 +56,7 @@
v-else-if="!tableLoading" :maxHeight="true" @handle-current-change="handleCurrentChange">
<!-- 项目列表 -->
<template slot="projectName" slot-scope="{data,row}">
<div v-if="row.projectName" class="no-line-feed">{{row.projectName}}</div>
<div v-if="row.projectName" class="no-line-feed" v-html="row.projectName"></div>
<span v-else>-</span>
</template>
<template slot="projectLeader" slot-scope="{data,row}">
......
......@@ -25,7 +25,7 @@
<el-button type="primary" @click="editProjectDetail">编辑信息</el-button>
</div>
<div class="save-project-detail-container" v-if="currentList === 'consultingAgency' && isModify" :key="'save-project'">
<el-button type="primary" @click="editProjectDetail">保存</el-button>
<el-button type="primary" @click="saveProjectDetail">保存</el-button>
<el-button @click="cancelSave">取消</el-button>
</div>
</transition>
......@@ -92,19 +92,19 @@ export default {
methods: {
async init() {
try {
const advisoryBodyCid = this.$route.params?.advisoryBodyCid;
const advisoryBodyCid = this.$route.query?.advisoryBodyCid;
const projectKey = this.$route.query?.projectKey;
if (!advisoryBodyCid) return this.$message.error("缺少咨询机构ID");
// if (!advisoryBodyCid) return this.$message.error("缺少咨询机构ID");
if (!projectKey) return this.$message.error("缺少项目主键");
const detail = await getgetConsultingOrgProjectDetailApi({
advisoryBodyCid,
projectKey
});
if (detail.code == 200 && detail.data) {
this.projectDetailInfo = { ...this.pprojectDetailInfo, ...detail.data };
this.projectDetailInfo = { ...this.projectDetailInfo, ...detail.data };
}
} catch (error) {
console.log(error);
}
},
editProjectDetail() {
......
......@@ -337,8 +337,8 @@ export default {
},
// 查看项目详情
viewProjectDetail(row) {
if (!row?.advisoryBody?.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(row.projectName, `/consultingOrgManagement/projectDetail/${row.advisoryBody?.advisoryBodyCid}?projectKey=${row.projectKey}`);
// if (!row?.advisoryBody?.advisoryBodyCid) return this.$message.warning("缺少咨询机构id");
this.$tab.openPage(row.projectName, `/consultingOrgManagement/projectDetail?advisoryBodyCid=${row.advisoryBody?.advisoryBodyCid ? row.advisoryBody?.advisoryBodyCid : ""}&projectKey=${row.projectKey}`);
},
// 跳转到企业详情
viewEnterprise(row) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment