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 @@
+
+
+
+
+
+
+
+
+
+
+ 待审核
+ 已通过
+ 已驳回
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ siteList.find((el) => el.id === row.tenantId)?.name ?? "无"
+ }}
+
+
+
+
+ 审批
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+ 基本信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 万元
+
+
+
+
+
+ 面议
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 审核拒绝
+ 通过审核
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+ 待审核
+ 已通过
+ 已驳回
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ siteList.find((el) => el.id === row.tenantId)?.name ?? "无"
+ }}
+
+
+
+
+
+ 审批
+
+
+
+
+
+
+
+
+
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 @@
-
+
-
-
+
+
{{ siteList.find((el) => el.id === row.tenantId)?.name ?? "无" }}
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 @@
- {{ row.industry }}
+ {{ row.industryName }}
-
+
{{ siteList.find((el) => el.id === row.tenantId)?.name ?? "无" }}
@@ -169,7 +169,7 @@
@pagination="getList"
/>
-
+
@@ -189,7 +189,7 @@
-
+
+
-
+
+
-
-
-
-
+
+
+
+
@@ -382,6 +379,8 @@