diff --git a/admin.zip b/admin.zip new file mode 100644 index 0000000..d21ce79 Binary files /dev/null and b/admin.zip differ diff --git a/src/api/dataApproval/achivement.js b/src/api/dataApproval/achivement.js new file mode 100644 index 0000000..79c6d3b --- /dev/null +++ b/src/api/dataApproval/achivement.js @@ -0,0 +1,23 @@ +import request from '@/utils/request' + +// 获取成果审核列表 +export const expertAchievementList = (params) => request({ + url: "/business/dataReview/expertAchievementList", + method: 'get', + params +}) +// 获取成果详情 +export const expertAchievementInfo = (params) => request({ + url: "/business/dataReview/expertAchievementInfo", + method: 'get', + params +}) + +// 修改成果 +export const updateExpertAchievement = (data) => request({ + url: "/business/dataReview/updateExpertAchievement", + method: 'put', + data +}) + + diff --git a/src/api/dataApproval/enterpriseServiceDemand.js b/src/api/dataApproval/enterpriseServiceDemand.js new file mode 100644 index 0000000..1050558 --- /dev/null +++ b/src/api/dataApproval/enterpriseServiceDemand.js @@ -0,0 +1,24 @@ +import request from "@/utils/request"; + +// 企业服务需求列表 +export const listCasDemand = (params) => + request({ + url: "/business/dataReview/listCasDemand/list", + method: "GET", + params, + }); + +// 企业服务需求详情 +export const getCasDemandInfo = (id) => + request({ + url: `/business/dataReview/getCasDemandInfo/${id}`, + method: "GET", + }); + +// 修改企业服务需求 +export const updateCasDemand = (data) => + request({ + url: `/business/dataReview/updateCasDemand`, + method: "PUT", + data, + }); diff --git a/src/api/dataApproval/enterpriseTechnologyDemand.js b/src/api/dataApproval/enterpriseTechnologyDemand.js new file mode 100644 index 0000000..e031829 --- /dev/null +++ b/src/api/dataApproval/enterpriseTechnologyDemand.js @@ -0,0 +1,8 @@ +import request from '@/utils/request' + +// 修改企业技术需求审核 +export const updateTechnologyDemand = (data) => request({ + url: "/business/dataReview/updateTechnologyDemand", + method: 'POST', + data +}) \ No newline at end of file diff --git a/src/api/dataList/enterprise.js b/src/api/dataList/enterprise.js index c815c96..a4bb83a 100644 --- a/src/api/dataList/enterprise.js +++ b/src/api/dataList/enterprise.js @@ -54,3 +54,49 @@ export function companyExamine(data) { data, }); } +// 公司企业分配账号 +export function allocateAccount(data) { + return request({ + url: "/business/enterprise/allocateAccount", + method: "post", + data, + }); +} +// 公司企业获取账号 +export function getAccount(id) { + return request({ + url: `/business/enterprise/getAccount/${id}`, + method: "get", + }); +} + +// 公司企业重置密码 +export function restPassword(id, password) { + return request({ + url: `/business/enterprise/restPassword/${id}/${password}`, + method: "put", + }); +} +// 公司企业获取会员详情 +export function getCasVip(id) { + return request({ + url: `/business/casVip/${id}`, + method: "get", + }); +} +// 公司企业开通会员详情 +export function openCasVip(data) { + return request({ + url: `/business/casVip`, + method: "post", + data + }); +} +// 公司企业修改会员 +export function updateCasVip(data) { + return request({ + url: `/business/casVip`, + method: "put", + data + }); +} diff --git a/src/api/dataList/expert.js b/src/api/dataList/expert.js index 68d2b71..3181240 100644 --- a/src/api/dataList/expert.js +++ b/src/api/dataList/expert.js @@ -40,3 +40,28 @@ export function expertExamine(data) { data, }) } + +// 专家分配账号 +export function allocateAccount(data) { + return request({ + url: "/business/casExpert/allocateAccount", + method: "post", + data, + }); +} + +// 专家获取账号 +export function getAccount(id) { + return request({ + url: `/business/casExpert/getAccount/${id}`, + method: "get", + }); +} + +// 专家重置密码 +export function restPassword(id, password) { + return request({ + url: `/business/casExpert/restPassword/${id}/${password}`, + method: "put", + }); +} diff --git a/src/api/expert/expert.js b/src/api/expert/expert.js index 7d2bad4..69d2672 100644 --- a/src/api/expert/expert.js +++ b/src/api/expert/expert.js @@ -1,29 +1,38 @@ import request from '@/utils/request' // 获取专家列表 export function expertList(params) { - return request({ - url:"/business/casExpert/list", - method:"get", - params - }); - } + return request({ + url: "/business/casExpert/list", + method: "get", + params + }); +} - // 新镇专家接口 - export const companyAdd=(data)=>request({ - url:"/business/casExpert", - method:'post', - data +// 新镇专家接口 +export const companyAdd = (data) => request({ + url: "/business/casExpert", + method: 'post', + data +}) + +// 专家详情接口 +export const companyDetail = (id) => request({ + url: `/business/casExpert/${id}`, + method: 'get', +}) + +// 修改专家详情 +export const companyEdit = (data) => request({ + url: '/business/casExpert', + method: 'put', + data +}) + +// 专家分配账号 +export function allocateAccount(data) { + return request({ + url: '/business/casExpert/allocateAccount', + method: 'post', + data, }) - - // 专家详情接口 - export const companyDetail=(id)=>request({ - url:`/business/casExpert/${id}`, - method:'get', - }) - - // 修改专家详情 - export const companyEdit =(data)=>request({ - url:'/business/casExpert', - method:'put', - data - }) \ No newline at end of file +} \ No newline at end of file diff --git a/src/components/WangEditor/index.vue b/src/components/WangEditor/index.vue index 44c0acd..3319fb0 100644 --- a/src/components/WangEditor/index.vue +++ b/src/components/WangEditor/index.vue @@ -61,6 +61,9 @@ export default { type: Boolean, default: false, }, + // disabled:{ + // type:B + // } }, setup(props, context) { // 编辑器实例,必须用 shallowRef @@ -130,7 +133,7 @@ export default { const handleCreated = (editor) => { editorRef.value = editor; // 记录 editor 实例,重要! - console.log(editorRef.value.getAllMenuKeys()); + // console.log(editorRef.value.getAllMenuKeys()); }; const handleChange = (editor) => { diff --git a/src/views/achievement/index.vue b/src/views/achievement/index.vue deleted file mode 100644 index 7db22e9..0000000 --- a/src/views/achievement/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/views/approval/dataList/add.vue b/src/views/approval/dataList/add.vue index 54fb02c..b5f8f0d 100644 --- a/src/views/approval/dataList/add.vue +++ b/src/views/approval/dataList/add.vue @@ -2,6 +2,7 @@
- 审批拒绝 - 审批通过 + +
+ 审核拒绝 + 通过审核 +
diff --git a/src/views/components/CityOptions/index.vue b/src/views/components/CityOptions/index.vue index 1dcc947..30fc8d6 100644 --- a/src/views/components/CityOptions/index.vue +++ b/src/views/components/CityOptions/index.vue @@ -156,19 +156,20 @@ const validateForm = async () => { return false; } }; -// watch(modelValue, (val) => { -// console.log(val); -// }); getProvinceList(); -watch(modelValue, (val) => { - if (val.province) { - getCityListByProvinceId(val.province); - } - if (val.city) { - getAreaListByCityId(val.city); - } -}); +watch( + modelValue, + (val) => { + if (val.province) { + getCityListByProvinceId(val.province); + } + if (val.city) { + getAreaListByCityId(val.city); + } + }, + { deep: true } +); defineExpose({ validateForm, diff --git a/src/views/components/ExpertForm/index.vue b/src/views/components/ExpertForm/index.vue index cbcedac..ab2a9fe 100644 --- a/src/views/components/ExpertForm/index.vue +++ b/src/views/components/ExpertForm/index.vue @@ -3,13 +3,19 @@ ref="formRef" :model="modelValue" :rules="rules" + :disabled="!isAdd" :label-width="labelWidth + 'px'" >
基本信息
- + @@ -129,6 +135,7 @@ --> - + \ No newline at end of file + diff --git a/src/views/Enterpriseproducts/approval.vue b/src/views/dataAuditList/Enterpriseproducts/approval.vue similarity index 99% rename from src/views/Enterpriseproducts/approval.vue rename to src/views/dataAuditList/Enterpriseproducts/approval.vue index e713922..fda57f1 100644 --- a/src/views/Enterpriseproducts/approval.vue +++ b/src/views/dataAuditList/Enterpriseproducts/approval.vue @@ -205,7 +205,7 @@ import InputBoxAdd from "@/views/components/InputBoxAdd"; import { getProductApprovalInfo, updateEnterpriseApprovalProduct, -} from "../../api/dataApproval/enterpriseProduct"; +} from "@/api/dataApproval/enterpriseProduct"; import { maturityOptions, leadOptions, diff --git a/src/views/Enterpriseproducts/index.vue b/src/views/dataAuditList/Enterpriseproducts/index.vue similarity index 97% rename from src/views/Enterpriseproducts/index.vue rename to src/views/dataAuditList/Enterpriseproducts/index.vue index 793ce46..214fcdb 100644 --- a/src/views/Enterpriseproducts/index.vue +++ b/src/views/dataAuditList/Enterpriseproducts/index.vue @@ -12,8 +12,8 @@ > 待审核 - 已驳回 - 已通过 + 已通过 + 已驳回 diff --git a/src/views/dataAuditList/achievement/approval.vue b/src/views/dataAuditList/achievement/approval.vue new file mode 100644 index 0000000..b09c5c2 --- /dev/null +++ b/src/views/dataAuditList/achievement/approval.vue @@ -0,0 +1,241 @@ + + + + diff --git a/src/views/dataAuditList/achievement/index.vue b/src/views/dataAuditList/achievement/index.vue new file mode 100644 index 0000000..463ad4d --- /dev/null +++ b/src/views/dataAuditList/achievement/index.vue @@ -0,0 +1,146 @@ + + + diff --git a/src/views/dataAuditList/demand/approval.vue b/src/views/dataAuditList/demand/approval.vue new file mode 100644 index 0000000..5d5d43e --- /dev/null +++ b/src/views/dataAuditList/demand/approval.vue @@ -0,0 +1,182 @@ + + + diff --git a/src/views/demand/index.vue b/src/views/dataAuditList/demand/index.vue similarity index 89% rename from src/views/demand/index.vue rename to src/views/dataAuditList/demand/index.vue index f3c2030..0c8ed87 100644 --- a/src/views/demand/index.vue +++ b/src/views/dataAuditList/demand/index.vue @@ -12,8 +12,8 @@ > 待审核 - 已驳回 - 已通过 + 已通过 + 已驳回 @@ -59,7 +59,7 @@ align="center" prop="mobile" > - + > --> - + diff --git a/src/views/dataAuditList/serviceDemand/index.vue b/src/views/dataAuditList/serviceDemand/index.vue new file mode 100644 index 0000000..4762d3e --- /dev/null +++ b/src/views/dataAuditList/serviceDemand/index.vue @@ -0,0 +1,177 @@ + + + diff --git a/src/views/dataList/enterprise/add.vue b/src/views/dataList/enterprise/add.vue index f9fbb21..8602e1e 100644 --- a/src/views/dataList/enterprise/add.vue +++ b/src/views/dataList/enterprise/add.vue @@ -44,11 +44,12 @@ const data = reactive({ inviterCode: undefined, url: undefined, industrys: [], + industry: "", keywords: [], directions: [], introduce: undefined, license: undefined, - workTime:'' + workTime: "", }, }); const { form } = toRefs(data); diff --git a/src/views/dataList/enterprise/index.vue b/src/views/dataList/enterprise/index.vue index c11ad84..e45fbe6 100644 --- a/src/views/dataList/enterprise/index.vue +++ b/src/views/dataList/enterprise/index.vue @@ -115,6 +115,27 @@ @click="handleDelete(row.id)" >删除 + 分配账号 + 重置密码 + 开通会员 @@ -123,7 +144,7 @@ v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" - v-model:limit="queryParams.page_size" + v-model:limit="queryParams.pageSize" @pagination="getList" /> @@ -173,6 +194,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + VIP + SVIP + + + + + + + + @@ -181,7 +298,14 @@ import { companyList, companyExport, companyDelete, + allocateAccount, + getAccount, + restPassword, + openCasVip, + getCasVip, + updateCasVip, } from "@/api/dataList/enterprise"; +import md5 from "js-md5"; import { getToken } from "@/utils/auth"; import SiteOptions from "@/views/components/SiteOptions"; // import axios from "axios"; @@ -193,7 +317,7 @@ import { tenantSelect } from "@/api/subPlatform/tenant"; import { reactive, ref, toRefs } from "vue"; import { useRouter } from "vue-router"; import { enterpriseOptions } from "@/utils/parameter"; -import { ElLoading, ElMessageBox } from "element-plus"; +import { ElLoading, ElMessage, ElMessageBox } from "element-plus"; import request from "@/utils/request"; import dayjs from "dayjs"; @@ -201,7 +325,7 @@ const router = useRouter(); const data = reactive({ queryParams: { pageNum: 1, - page_size: 10, + pageSize: 10, examine_status: 2, name: undefined, tenantId: undefined, @@ -249,6 +373,132 @@ const handleQuery = () => { queryParams.value.pageNum = 1; getList(); }; + +const assignAccoutRules = { + username: [{ required: true, message: "请输入用户名", trigger: "blur" }], + password: [{ required: true, message: "请输入密码", trigger: "blur" }], + vipType: [{ required: true, message: "请选择会员类型", trigger: "change" }], + expireTime: [ + { required: true, message: "请选择到期时间", trigger: "change" }, + ], +}; +const showAssignAccount = ref(false); +const assignAccountForm = reactive({ + username: undefined, + password: undefined, +}); +const assignAccountFormRef = ref(); +const resetPasswordForm = reactive({ + password: undefined, +}); +const resetPasswordFormRef = ref(); +const showResetPassword = ref(false); + +const openAssignAccount = async (id) => { + resetForm(); + const { have, data } = await getAccount(id); + if (have) { + ElMessageBox.alert(`已经存在账号:${data}`, "账号已经存在"); + } else { + assignAccountForm.id = id; + showAssignAccount.value = true; + } +}; + +const openResetPassword = async (id) => { + resetForm(); + const { have } = await getAccount(id); + if (have) { + resetPasswordForm.id = id; + showResetPassword.value = true; + } else { + ElMessageBox.alert(`尚未分配账号,请先分配账号`, "尚未分配账号"); + } +}; +const resetForm = () => { + if (resetPasswordFormRef.value) { + resetPasswordFormRef.value.resetFields(); + } + if (assignAccountFormRef.value) { + assignAccountFormRef.value.resetFields(); + } + resetPasswordForm.password = undefined; + assignAccountForm.username = undefined; + assignAccountForm.password = undefined; +}; +const closeResetPassword = () => { + resetForm(); + showResetPassword.value = false; +}; +const closeAssignAccount = () => { + resetForm(); + showAssignAccount.value = false; +}; + +const submitAssignAccount = async () => { + await assignAccountFormRef.value.validate(); + await allocateAccount({ + ...assignAccountForm, + password: md5(assignAccountForm.password), + }); + ElMessage.success("账号分配成功"); + showAssignAccount.value = false; +}; + +const submitResetPassword = async () => { + await resetPasswordFormRef.value.validate(); + await restPassword(resetPasswordForm.id, md5(resetPasswordForm.password)); + ElMessage.success("密码重置成功"); + showResetPassword.value = false; +}; + +//TODO: +/** 开通vip操作 */ +const vipData = reactive({ + vipForm: { userType: "1" }, +}); +const { vipForm } = toRefs(vipData); +const showOpenVip = ref(false); +const vipFormRef = ref(); + +const handleOpenVip = async (id) => { + resetVipForm(); + const { have, userId } = await getAccount(id); + if (have) { + const resp = await getCasVip(userId); + if (resp.have) { + vipForm.value = resp.data; + showOpenVip.value = true; + } else { + vipForm.value.userId = userId; + showOpenVip.value = true; + } + } else { + ElMessageBox.alert(`尚未分配账号,请先分配账号`, "尚未分配账号"); + } +}; +const submitVip = async () => { + await vipFormRef.value.validate(); + if (vipForm.value.id) { + await updateCasVip(vipForm.value); + ElMessage.success("会员修改成功"); + } else { + await openCasVip(vipForm.value); + ElMessage.success("会员开通成功"); + } + showOpenVip.value = false; +}; +const resetVipForm = () => { + vipForm.value.vipType = undefined; + vipForm.value.expireTime = undefined; + if (vipFormRef.value) { + vipFormRef.value.resetFields(); + } +}; +const closeVip = () => { + resetVipForm(); + showOpenVip.value = false; +}; /** 重置按钮操作 */ const resetQuery = () => { dateRange.value = []; @@ -300,6 +550,7 @@ const handleFileSuccess = (response, file, fileList) => { ); getList(); }; + /** 提交上传文件 */ function submitFileForm() { uploadRef.value.submit(); diff --git a/src/views/dataList/expert/index.vue b/src/views/dataList/expert/index.vue index 96577aa..5f50881 100644 --- a/src/views/dataList/expert/index.vue +++ b/src/views/dataList/expert/index.vue @@ -99,6 +99,21 @@ @click="handleClaim(row.id)" >已认领专利 + + 分配账号 + 重置密码 @@ -108,7 +123,7 @@ v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" - v-model:limit="queryParams.page_size" + v-model:limit="queryParams.pageSize" @pagination="getList" /> @@ -158,9 +173,77 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file +const close = () => { + formData.value = {}; + isShow.value = false; +}; +getList(); + diff --git a/src/views/expert/dataList/approval.vue b/src/views/expert/dataList/approval.vue index b68d2ba..29e291f 100644 --- a/src/views/expert/dataList/approval.vue +++ b/src/views/expert/dataList/approval.vue @@ -2,6 +2,7 @@
- 拒绝 - 通过 +
+ 审核拒绝 + 通过审核 +
diff --git a/src/views/expert/dataList/index.vue b/src/views/expert/dataList/index.vue index fed2b1a..b2235d1 100644 --- a/src/views/expert/dataList/index.vue +++ b/src/views/expert/dataList/index.vue @@ -51,10 +51,15 @@ - + - - + + diff --git a/src/views/website/activity/active/index.vue b/src/views/website/activity/active/index.vue index 940a221..3d1b99e 100644 --- a/src/views/website/activity/active/index.vue +++ b/src/views/website/activity/active/index.vue @@ -109,11 +109,11 @@ - + - +