明树Git Lab

Commit 1a4543d1 authored by yangyajing's avatar yangyajing

审批对接

parent f621841e
Pipeline #108131 passed with stage
in 20 seconds
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<el-icon size="20"> <el-icon size="20">
<ChatDotSquare /> <ChatDotSquare />
</el-icon> </el-icon>
<div class="count">{{ messageCount }}</div> <div v-if="messageCount" class="count">{{ messageCount }}</div>
</div> </div>
<div> <div>
<el-dropdown> <el-dropdown>
...@@ -45,39 +45,40 @@ ...@@ -45,39 +45,40 @@
</template> </template>
<script setup> <script setup>
import { computed, ref, onMounted, getCurrentInstance } from "vue"; import { computed, ref, onMounted, getCurrentInstance, watch } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { useUserStore } from "@/stores/user.js"; import { useUserStore } from "@/stores/user.js";
import windowConfig from "@/window";
import LeftMenu from "./leftMenu.vue"; import LeftMenu from "./leftMenu.vue";
import axios from "axios"; // watch中使用proxy会有warning
const userStore = useUserStore(); const userStore = useUserStore();
const { proxy } = getCurrentInstance(); const proxyRef = ref(null);
// 在 setup 中设置
const instance = getCurrentInstance();
if (instance) {
proxyRef.value = instance.proxy;
}
let userInfo = ref( let userInfo = ref(
sessionStorage.getItem("userInfo") sessionStorage.getItem("userInfo")
? JSON.parse(sessionStorage.getItem("userInfo")) ? JSON.parse(sessionStorage.getItem("userInfo"))
: [], : [],
); );
const router = useRouter(); const router = useRouter();
const route = useRoute();
// 获取资源库数据 // 获取资源库数据
const getResourceData = () => { const getResourceData = () => {
proxy.$post({ axios.post(windowConfig.baseUrl + "/api/resource/listResourceAll", {}).then((res) => {
url: "/api/resource/listResourceAll", sessionStorage.setItem("resourceData", JSON.stringify(res.data));
data: {}, })
callback: (data) => {
sessionStorage.setItem("resourceData", JSON.stringify(data));
},
});
}; };
// 获取未读消息数量 // 获取未读消息数量
let messageCount = ref(0); let messageCount = ref(0);
const getMessageCount = () => { const getMessageCount = () => {
proxy.$post({ axios.post(windowConfig.baseUrl + "/api/message/getMesCount", {}).then((res) => {
url: "/api/message/getMesCount", messageCount.value = res.data.count;
data: {}, })
callback: (data) => {
messageCount.value = data.count;
},
});
}; };
// 跳转消息列表页 // 跳转消息列表页
const toMessagePage = () => { const toMessagePage = () => {
...@@ -87,6 +88,10 @@ onMounted(() => { ...@@ -87,6 +88,10 @@ onMounted(() => {
getResourceData(); getResourceData();
getMessageCount(); getMessageCount();
}); });
watch(() => route.path, () => {
getMessageCount();
})
// 处理退出登录 // 处理退出登录
const handleLogout = () => { const handleLogout = () => {
// 清除登录状态 // 清除登录状态
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
<div class="header-right"> <div class="header-right">
<el-button type="default" @click="backClick">返回</el-button> <el-button type="default" @click="backClick">返回</el-button>
<template v-if="!loading && !isPreview"> <template v-if="!loading && !isPreview">
<el-button type="primary" v-if="['1', '5', '7'].includes(formData.projectLzType) || !formData.projectLzType" @click="saveClick('save')">保存</el-button> <el-button type="primary" v-if="!formData.projectLzType || ['1', '5', '7'].includes(formData.projectLzType.toString())" @click="saveClick('save')">保存</el-button>
<el-button type="primary" v-if="formData.projectLzType == '1'" @click="saveClick('submit')">发起立项填报</el-button> <el-button type="primary" v-if="formData.projectLzType == '1'" @click="saveClick('submit')">发起立项填报</el-button>
<el-button type="primary" v-if="jcFormData.projectLzType === '7'" @click="saveClick('submit')">发起决策信息填报</el-button> <el-button type="primary" v-if="jcFormData.projectLzType == '7'" @click="saveClick('submit')">发起决策信息填报</el-button>
</template> </template>
<!-- <el-button <el-button
v-if="isPreview && " v-if="isPreview && canAudit && (formData.projectLzType == '3' || jcFormData.projectLzType == '8') && formData.del !== 1"
type="primary" @click="auditDialogVisible = true" type="primary" @click="auditDialogVisible = true"
>审核</el-button> --> >审核</el-button>
</div> </div>
</div> </div>
<el-tabs v-model="pageActiveName" type="border-card"> <el-tabs v-model="pageActiveName" type="border-card">
...@@ -879,7 +879,7 @@ ...@@ -879,7 +879,7 @@
</div> </div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="决策信息填报" name="决策信息填报" <el-tab-pane label="决策信息填报" name="决策信息填报"
v-if="formData.projectLzType === '5' || formData.projectLzType === '7'" v-if="formData.projectLzType == '5' || formData.projectLzType == '7'"
:lazy="true" :lazy="true"
> >
<div class="project-tab-content"> <div class="project-tab-content">
...@@ -2567,6 +2567,14 @@ ...@@ -2567,6 +2567,14 @@
const userStore = useUserStore(); const userStore = useUserStore();
let token = ref(""); let token = ref("");
token.value = userStore.authToken || sessionStorage.getItem("authToken") || ""; token.value = userStore.authToken || sessionStorage.getItem("authToken") || "";
// 是否是审核角色
const userInfo = userStore.userInfo || (sessionStorage.getItem("userInfo") && JSON.parse(sessionStorage.getItem("userInfo"))) || {};
let canAudit = ref(false);
userInfo.roles.map(item => {
if (["xmlx_sp", "xmjc_sp"].includes(item.key)) {
canAudit.value = true;
}
});
// tab相关 // tab相关
const pageActiveName = ref("立项填报"); const pageActiveName = ref("立项填报");
...@@ -3431,6 +3439,9 @@ ...@@ -3431,6 +3439,9 @@
callback: (res) => { callback: (res) => {
loading.value = false; loading.value = false;
let data = res.lixiang || {}; let data = res.lixiang || {};
if (data.del === 1) {
ElMessage.warning("该条数据已被删除");
}
Object.assign(formData, data); Object.assign(formData, data);
Object.assign(swlzbData, data.projectJsgms); Object.assign(swlzbData, data.projectJsgms);
Object.assign(gdxxData, data.projectGdxxs.concat([{}])); Object.assign(gdxxData, data.projectGdxxs.concat([{}]));
...@@ -3537,7 +3548,7 @@ ...@@ -3537,7 +3548,7 @@
} }
// 保存数据 // 保存数据
const saveClick = (type) => { const saveClick = (type) => {
if (!formData.projectLzType || formData.projectLzType === '1') { if (!formData.projectLzType || formData.projectLzType.toString() === '1') {
let url = formData.id ? type === "submit" ? "startLixiang" : "saveProjectPreLixiang" : "createProject"; let url = formData.id ? type === "submit" ? "startLixiang" : "saveProjectPreLixiang" : "createProject";
let gdxxNewArr = JSON.parse(JSON.stringify(gdxxData)); let gdxxNewArr = JSON.parse(JSON.stringify(gdxxData));
gdxxNewArr.splice(-1); gdxxNewArr.splice(-1);
...@@ -3563,7 +3574,7 @@ ...@@ -3563,7 +3574,7 @@
router.push("/projectDraft"); router.push("/projectDraft");
} }
}) })
} else if (jcFormData.projectLzType === "5" || jcFormData.projectLzType === "7") { } else if (jcFormData.projectLzType.toString() === "5" || jcFormData.projectLzType.toString() === "7") {
let url = type === "submit" ? "startJuece" : "saveJuece"; let url = type === "submit" ? "startJuece" : "saveJuece";
let gdxxNewArr = JSON.parse(JSON.stringify(jcGdxxData)); let gdxxNewArr = JSON.parse(JSON.stringify(jcGdxxData));
gdxxNewArr.splice(-1); gdxxNewArr.splice(-1);
...@@ -3612,7 +3623,19 @@ ...@@ -3612,7 +3623,19 @@
}; };
const submitAudit = () => { const submitAudit = () => {
auditForm.value.validate(valid => { auditForm.value.validate(valid => {
if (valid) {} if (valid) {
let url = formData.projectLzType.toString() === "3" ? "approvalLixiang" : jcFormData.projectLzType.toString() === "8" ? "approvalJuece" : "";
proxy.$post({
url: "/api/project/" + url,
data: {
id: formData.id,
...auditFormData.value
},
callback: (data) => {
router.push("/message");
}
})
}
}); });
}; };
</script> </script>
......
...@@ -23,8 +23,8 @@ ...@@ -23,8 +23,8 @@
> >
<template #operations="{ row, index }"> <template #operations="{ row, index }">
<el-button link type="primary" size="small" <el-button link type="primary" size="small"
:loading="row.loading" @click="getResult(row)" :loading="row.loading" @click="previewProject(row)"
>查询</el-button> >{{ canAudit && row.projectLzType == 8 ? "审批" : "查看" }}</el-button>
</template> </template>
</common-table> </common-table>
</div> </div>
...@@ -36,10 +36,20 @@ ...@@ -36,10 +36,20 @@
import { reactive, ref, onMounted, computed, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, computed, getCurrentInstance } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { useUserStore } from "@/stores/user.js";
import CommonTable from "@/components/common/commonTable.vue"; import CommonTable from "@/components/common/commonTable.vue";
const router = useRouter(); const router = useRouter();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
// 是否是审核角色
const userStore = useUserStore();
const userInfo = userStore.userInfo || (sessionStorage.getItem("userInfo") && JSON.parse(sessionStorage.getItem("userInfo"))) || {};
let canAudit = ref(false);
userInfo.roles.map(item => {
if (["xmlx_sp", "xmjc_sp"].includes(item.key)) {
canAudit.value = true;
}
});
let tableData = ref([]); let tableData = ref([]);
let tableColumns = ref([ let tableColumns = ref([
...@@ -109,19 +119,15 @@ ...@@ -109,19 +119,15 @@
currentPage.value = page; currentPage.value = page;
getProjectData(); getProjectData();
} }
const getResult = (item) => { const previewProject = (item) => {
item.loading = true; router.push({
proxy.$post({ name: "addProject",
url: "/api/project/queryJueceResult", query: {
data: { isPreview: true,
id: item.id projectId: item.id
},
callback: (data) => {
item.loading = false;
getProjectData();
} }
}) })
}; }
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
......
...@@ -29,9 +29,8 @@ ...@@ -29,9 +29,8 @@
>决策填报</el-button> >决策填报</el-button>
<!-- 立项审批中 --> <!-- 立项审批中 -->
<el-button link type="primary" size="small" <el-button link type="primary" size="small"
v-else v-else :loading="row.loading" @click="viewDecision(row)"
:loading="row.loading" @click="viewDecision(row)" >{{ canAudit ? "审批" : "查看" }}</el-button>
>查看</el-button>
</template> </template>
</common-table> </common-table>
</div> </div>
...@@ -43,10 +42,20 @@ ...@@ -43,10 +42,20 @@
import { reactive, ref, onMounted, computed, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, computed, getCurrentInstance } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { useUserStore } from "@/stores/user.js";
import CommonTable from "@/components/common/commonTable.vue"; import CommonTable from "@/components/common/commonTable.vue";
const router = useRouter(); const router = useRouter();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
// 是否是审核角色
const userStore = useUserStore();
const userInfo = userStore.userInfo || (sessionStorage.getItem("userInfo") && JSON.parse(sessionStorage.getItem("userInfo"))) || {};
let canAudit = ref(false);
userInfo.roles.map(item => {
if (["xmlx_sp", "xmjc_sp"].includes(item.key)) {
canAudit.value = true;
}
});
let tableData = ref([]); let tableData = ref([]);
let tableColumns = ref([ let tableColumns = ref([
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="closeDialog">关闭</el-button> <el-button @click="closeDialog">关闭</el-button>
<!-- <el-button type="primary" @click="toProjectPage">去处理</el-button> --> <el-button type="primary" @click="toProjectPage">去处理</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
......
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