diff --git a/src/api/dataList/laboratory.js b/src/api/dataList/laboratory.js
index eccb4b8..598be02 100644
--- a/src/api/dataList/laboratory.js
+++ b/src/api/dataList/laboratory.js
@@ -1,51 +1,52 @@
-import request from '@/utils/request'
-
-// 实验室筛选信息
-export function laboratorySelect(data) {
- return request({
- url: '/admin/v1/laboratory/select',
- method: 'post',
- data,
- })
-}
+import request from "@/utils/request";
// 实验室列表
-export function laboratoryList(data) {
- return request({
- url: '/admin/v1/manage/laboratory',
- method: 'post',
- data,
- })
+export function casLaboratoryList(params) {
+ return request({
+ url: "/business/casLaboratory/list",
+ method: "GET",
+ params,
+ });
}
-// // 实验室信息添加
-// export function laboratoryAdd(data) {
-// return request({
-// url: '/admin/v1/manage/laboratory/add',
-// method: 'post',
-// data,
-// })
-// }
-// 实验室详细信息
-export function laboratoryDetail(data) {
- return request({
- url: '/admin/v1/manage/laboratory/detail',
- method: 'post',
- data,
- })
+// 新增
+export function casLaboratoryAdd(data) {
+ return request({
+ url: "/business/casLaboratory",
+ method: "POST",
+ data,
+ });
}
-// 实验室信息修改
-export function laboratoryEdit(data) {
- return request({
- url: '/admin/v1/manage/laboratory/edit',
- method: 'post',
- data,
- })
+// 修改
+export function casLaboratoryUpdate(data) {
+ return request({
+ url: "/business/casLaboratory",
+ method: "PUT",
+ data,
+ });
}
-// 实验室审核操作
-export function laboratoryExamine(data) {
- return request({
- url: '/admin/v1/manage/laboratory/examine',
- method: 'post',
- data,
- })
+// id详情
+export function casLaboratoryDetail(id) {
+ return request({
+ url: `/business/casLaboratory/${id}`,
+ method: "GET",
+ });
+}
+// 删除
+export function casLaboratoryDelete(id) {
+ return request({
+ url: `/business/casLaboratory`,
+ method: "DELETE",
+ data: {
+ ids: [id],
+ },
+ });
+}
+
+// 导入
+export function casLaboratoryImportData(data) {
+ return request({
+ url: `/business/casLaboratory/importData`,
+ method: "POST",
+ data,
+ });
}
diff --git a/src/components/WangEditor/index.vue b/src/components/WangEditor/index.vue
index 091ff79..95d22f5 100644
--- a/src/components/WangEditor/index.vue
+++ b/src/components/WangEditor/index.vue
@@ -18,6 +18,7 @@
:mode="mode"
@onCreated="handleCreated"
@onChange="handleChange"
+ @onBlur="emitBlur"
/>
@@ -142,13 +143,16 @@ export default {
};
const handleChange = (editor) => {
- if (editor.getHtml() === "
") {
+ if (editor.isEmpty()) {
context.emit("update:modelValue", "");
} else {
context.emit("update:modelValue", editor.getHtml());
}
};
-
+ const emitBlur = () => {
+ context.emit("blur", editorRef.value);
+ // editorRef.value.emit("blur");
+ };
return {
editorRef,
valueHtml,
@@ -158,6 +162,7 @@ export default {
height,
handleCreated,
handleChange,
+ emitBlur,
};
},
};
diff --git a/src/utils/parameter.js b/src/utils/parameter.js
index 00eed25..7c98aeb 100644
--- a/src/utils/parameter.js
+++ b/src/utils/parameter.js
@@ -40,6 +40,28 @@ export const enterpriseOptions = [
{ key: "104", value: "高新技术企业" },
{ key: "105", value: "科技企业" },
];
+
+// 需求类型
+export const demandCategoryList = [
+ { id: 1, name: "基金对接" },
+ { id: 2, name: "贷款" },
+ { id: 3, name: "对接专家院士" },
+ { id: 4, name: "人才培养" },
+ { id: 5, name: "一带一路国际合作" },
+ { id: 6, name: "上市辅导" },
+ { id: 7, name: "成果产业化" },
+ { id: 8, name: "国家级科研平台合作" },
+ { id: 9, name: "研发项目立项评估" },
+ { id: 10, name: "科技查新" },
+ { id: 11, name: "产业链上下游对接" },
+ { id: 12, name: "委托研发" },
+ { id: 13, name: "对接政府项目落地" },
+ { id: 14, name: "技术咨询" },
+ { id: 15, name: "高价值专利培育" },
+ { id: 16, name: "知识产权布局" },
+ { id: 17, name: "设立院士工作站" },
+ { id: 18, name: "海外留学生培养" },
+];
// 成果成熟度 技术
export const maturityOptions = [
{ key: "1", value: "正在研发" },
diff --git a/src/utils/request.js b/src/utils/request.js
index dab3d7d..730c94f 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,183 +1,267 @@
-import axios from 'axios'
-import { ElNotification , ElMessageBox, ElMessage, ElLoading } from 'element-plus'
-import { getToken } from '@/utils/auth'
-import errorCode from '@/utils/errorCode'
-import { tansParams, blobValidate } from '@/utils/ruoyi'
-import cache from '@/plugins/cache'
-import { saveAs } from 'file-saver'
-import useUserStore from '@/store/modules/user'
+import axios from "axios";
+import {
+ ElNotification,
+ ElMessageBox,
+ ElMessage,
+ ElLoading,
+} from "element-plus";
+import { getToken } from "@/utils/auth";
+import errorCode from "@/utils/errorCode";
+import { tansParams, blobValidate } from "@/utils/ruoyi";
+import cache from "@/plugins/cache";
+import { saveAs } from "file-saver";
+import useUserStore from "@/store/modules/user";
let downloadLoadingInstance;
// 是否显示重新登录
export let isRelogin = { show: false };
-axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
+axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL: import.meta.env.VITE_APP_BASE_API,
// 超时
- timeout: 10000
-})
+ timeout: 10000,
+});
// request拦截器
-service.interceptors.request.use(config => {
- // 是否需要设置 token
- const isToken = (config.headers || {}).isToken === false
- // 是否需要防止数据重复提交
- const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
- if (getToken() && !isToken) {
- config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
- }
- // get请求映射params参数
- if (config.method === 'get' && config.params) {
- let url = config.url + '?' + tansParams(config.params);
- url = url.slice(0, -1);
- config.params = {};
- config.url = url;
- }
- if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
- const requestObj = {
- url: config.url,
- data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
- time: new Date().getTime()
+service.interceptors.request.use(
+ (config) => {
+ // 是否需要设置 token
+ const isToken = (config.headers || {}).isToken === false;
+ // 是否需要防止数据重复提交
+ const isRepeatSubmit = (config.headers || {}).repeatSubmit === false;
+ if (getToken() && !isToken) {
+ config.headers["Authorization"] = "Bearer " + getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
}
- const sessionObj = cache.session.getJSON('sessionObj')
- if (sessionObj === undefined || sessionObj === null || sessionObj === '') {
- cache.session.setJSON('sessionObj', requestObj)
- } else {
- const s_url = sessionObj.url; // 请求地址
- const s_data = sessionObj.data; // 请求数据
- const s_time = sessionObj.time; // 请求时间
- const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
- if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
- const message = '数据正在处理,请勿重复提交';
- console.warn(`[${s_url}]: ` + message)
- return Promise.reject(new Error(message))
+ // get请求映射params参数
+ if (config.method === "get" && config.params) {
+ let url = config.url + "?" + tansParams(config.params);
+ url = url.slice(0, -1);
+ config.params = {};
+ config.url = url;
+ }
+ if (
+ !isRepeatSubmit &&
+ (config.method === "post" || config.method === "put")
+ ) {
+ const requestObj = {
+ url: config.url,
+ data:
+ typeof config.data === "object"
+ ? JSON.stringify(config.data)
+ : config.data,
+ time: new Date().getTime(),
+ };
+ const sessionObj = cache.session.getJSON("sessionObj");
+ if (
+ sessionObj === undefined ||
+ sessionObj === null ||
+ sessionObj === ""
+ ) {
+ cache.session.setJSON("sessionObj", requestObj);
} else {
- cache.session.setJSON('sessionObj', requestObj)
+ const s_url = sessionObj.url; // 请求地址
+ const s_data = sessionObj.data; // 请求数据
+ const s_time = sessionObj.time; // 请求时间
+ const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交
+ if (
+ s_data === requestObj.data &&
+ requestObj.time - s_time < interval &&
+ s_url === requestObj.url
+ ) {
+ const message = "数据正在处理,请勿重复提交";
+ console.warn(`[${s_url}]: ` + message);
+ return Promise.reject(new Error(message));
+ } else {
+ cache.session.setJSON("sessionObj", requestObj);
+ }
}
}
+ return config;
+ },
+ (error) => {
+ console.log(error);
+ Promise.reject(error);
}
- return config
-}, error => {
- console.log(error)
- Promise.reject(error)
-})
+);
// 响应拦截器
-service.interceptors.response.use(res => {
+service.interceptors.response.use(
+ (res) => {
// 未设置状态码则默认成功状态
const code = res.data.code || 200;
// 获取错误信息
- const msg = errorCode[code] || res.data.msg || errorCode['default']
+ const msg = errorCode[code] || res.data.msg || errorCode["default"];
// 二进制数据则直接返回
- if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){
- return res.data
+ if (
+ res.request.responseType === "blob" ||
+ res.request.responseType === "arraybuffer"
+ ) {
+ return res.data;
}
if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
- ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
- confirmButtonText: '重新登录',
- cancelButtonText: '取消',
- type: 'warning'
- }
- ).then(() => {
- isRelogin.show = false;
- useUserStore().logOut().then(() => {
- location.href = '/index';
- })
- }).catch(() => {
- isRelogin.show = false;
- });
- }
- return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
+ ElMessageBox.confirm(
+ "登录状态已过期,您可以继续留在该页面,或者重新登录",
+ "系统提示",
+ {
+ confirmButtonText: "重新登录",
+ cancelButtonText: "取消",
+ type: "warning",
+ }
+ )
+ .then(() => {
+ isRelogin.show = false;
+ useUserStore()
+ .logOut()
+ .then(() => {
+ location.href = "/index";
+ });
+ })
+ .catch(() => {
+ isRelogin.show = false;
+ });
+ }
+ return Promise.reject("无效的会话,或者会话已过期,请重新登录。");
} else if (code === 500) {
ElMessage({
message: msg,
- type: 'error'
- })
- return Promise.reject(new Error(msg))
+ type: "error",
+ });
+ return Promise.reject(new Error(msg));
} else if (code !== 200) {
ElNotification.error({
- title: msg
- })
- return Promise.reject('error')
+ title: msg,
+ });
+ return Promise.reject("error");
} else {
- return Promise.resolve(res.data)
+ return Promise.resolve(res.data);
}
},
- error => {
- console.log('err' + error)
+ (error) => {
+ console.log("err" + error);
let { message } = error;
if (message == "Network Error") {
message = "后端接口连接异常";
- }
- else if (message.includes("timeout")) {
+ } else if (message.includes("timeout")) {
message = "系统接口请求超时";
- }
- else if (message.includes("Request failed with status code")) {
+ } else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
ElMessage({
message: message,
- type: 'error',
- duration: 5 * 1000
- })
- return Promise.reject(error)
+ type: "error",
+ duration: 5 * 1000,
+ });
+ return Promise.reject(error);
}
-)
+);
// 通用下载方法
export function download(url, params, filename) {
- downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
- return service.post(url, params, {
- transformRequest: [(params) => { return tansParams(params) }],
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- responseType: 'blob'
- }).then(async (data) => {
- const isLogin = await blobValidate(data);
- if (isLogin) {
- const blob = new Blob([data])
- saveAs(blob, filename)
- } else {
- const resText = await data.text();
- const rspObj = JSON.parse(resText);
- const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
- ElMessage.error(errMsg);
- }
- downloadLoadingInstance.close();
- }).catch((r) => {
- console.error(r)
- ElMessage.error('下载文件出现错误,请联系管理员!')
- downloadLoadingInstance.close();
- })
-}
-export function customDownload(url, params, filename) {
- downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
- return service.get(url, params, {
- baseURL:"",
- transformRequest: [(params) => { return tansParams(params) }],
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
- responseType: 'blob'
- }).then(async (data) => {
- const isLogin = await blobValidate(data);
- if (isLogin) {
- const blob = new Blob([data])
- saveAs(blob, filename)
- } else {
- const resText = await data.text();
- const rspObj = JSON.parse(resText);
- const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
- ElMessage.error(errMsg);
- }
- downloadLoadingInstance.close();
- }).catch((r) => {
- console.error(r)
- ElMessage.error('下载文件出现错误,请联系管理员!')
- downloadLoadingInstance.close();
- })
+ downloadLoadingInstance = ElLoading.service({
+ text: "正在下载数据,请稍候",
+ background: "rgba(0, 0, 0, 0.7)",
+ });
+ return service
+ .post(url, params, {
+ transformRequest: [
+ (params) => {
+ return tansParams(params);
+ },
+ ],
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
+ responseType: "blob",
+ })
+ .then(async (data) => {
+ const isLogin = await blobValidate(data);
+ if (isLogin) {
+ const blob = new Blob([data]);
+ console.log(blob);
+ saveAs(blob, filename);
+ } else {
+ const resText = await data.text();
+ const rspObj = JSON.parse(resText);
+ const errMsg =
+ errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
+ ElMessage.error(errMsg);
+ }
+ downloadLoadingInstance.close();
+ })
+ .catch((r) => {
+ console.error(r);
+ ElMessage.error("下载文件出现错误,请联系管理员!");
+ downloadLoadingInstance.close();
+ });
}
-export default service
+export const downloadFile = async (url, filename) => {
+ downloadLoadingInstance = ElLoading.service({
+ text: "正在下载数据,请稍候",
+ background: "rgba(0, 0, 0, 0.7)",
+ });
+ try {
+ const { data } = await axios.get(url, {
+ responseType: "blob",
+ });
+ const isBlob = await blobValidate(data);
+ if (isBlob) {
+ const blob = new Blob([data]);
+ saveAs(blob, filename);
+ } else {
+ const resText = await data.text();
+ const rspObj = JSON.parse(resText);
+ const errMsg =
+ errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
+ ElMessage.error(errMsg);
+ }
+ downloadLoadingInstance.close();
+ } catch (error) {
+ console.error(error);
+ ElMessage.error("下载文件出现错误,请联系管理员!");
+ downloadLoadingInstance.close();
+ }
+};
+
+export async function customDownload(url, params, filename) {
+ downloadLoadingInstance = ElLoading.service({
+ text: "正在下载数据,请稍候",
+ background: "rgba(0, 0, 0, 0.7)",
+ });
+ try {
+ const data = await service.get(url, params, {
+ baseURL: "",
+ transformRequest: [
+ (params_1) => {
+ return tansParams(params_1);
+ },
+ ],
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
+ responseType: "blob",
+ });
+ console.log(data);
+ const isLogin = await blobValidate(data);
+ if (isLogin) {
+ const blob = new Blob([data]);
+ console.log(blob);
+
+ saveAs(blob, filename);
+ } else {
+ const resText = await data.text();
+ const rspObj = JSON.parse(resText);
+ const errMsg =
+ errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
+ ElMessage.error(errMsg);
+ }
+ downloadLoadingInstance.close();
+ } catch (r) {
+ console.error(r);
+ ElMessage.error("下载文件出现错误,请联系管理员!");
+ downloadLoadingInstance.close();
+ }
+}
+
+export default service;
diff --git a/src/views/approval/dataList/index.vue b/src/views/approval/dataList/index.vue
index 1ea8b22..d5afce6 100644
--- a/src/views/approval/dataList/index.vue
+++ b/src/views/approval/dataList/index.vue
@@ -32,13 +32,13 @@
-
+
{{ row.industrys[row.industrys.length - 1] }}
-
+
@@ -150,7 +150,7 @@ const router = useRouter();
const total = ref(0);
const dataList = ref([]);
const { queryData, setTypeRow } = toRefs(data);
-const siteList = ref([]);
+// const siteList = ref([]);
const isShow = ref(false);
const radioList = ref("");
const examineStatusDict = {
@@ -166,11 +166,11 @@ const getList = async () => {
dataList.value = res.rows;
total.value = res.total;
};
-// 获取站点列表
-const getSiteList = async () => {
- const resp = await tenantSelect();
- siteList.value = resp.rows;
-};
+// // 获取站点列表
+// const getSiteList = async () => {
+// const resp = await tenantSelect();
+// siteList.value = resp.rows;
+// };
// 搜索查询
const handleQuery = () => {
getList(queryData.value);
@@ -217,6 +217,6 @@ const handleDetail = (id) => {
});
};
getList();
-getSiteList();
+// getSiteList();
diff --git a/src/views/components/AgentForm/index.vue b/src/views/components/AgentForm/index.vue
index 4ae94d9..81b6082 100644
--- a/src/views/components/AgentForm/index.vue
+++ b/src/views/components/AgentForm/index.vue
@@ -148,8 +148,8 @@
import CityOptions from "@/views/components/CityOptions";
import FieldOptions from "@/views/components/FieldOptions";
import InputBoxAdd from "@/views/components/InputBoxAdd";
-import { researchSelect } from "@/api/dataList/research";
-import { laboratorySelect } from "@/api/dataList/laboratory";
+// import { researchSelect } from "@/api/dataList/research";
+// import { laboratorySelect } from "@/api/dataList/laboratory";
export default {
components: {
CityOptions,
diff --git a/src/views/components/Businessneeds/Approvaldetails copy.vue b/src/views/components/Businessneeds/Approvaldetails copy.vue
index 308b961..9109048 100644
--- a/src/views/components/Businessneeds/Approvaldetails copy.vue
+++ b/src/views/components/Businessneeds/Approvaldetails copy.vue
@@ -98,6 +98,7 @@
diff --git a/src/views/components/Businessneeds/Approvaldetails.vue b/src/views/components/Businessneeds/Approvaldetails.vue
index e80f799..07f8756 100644
--- a/src/views/components/Businessneeds/Approvaldetails.vue
+++ b/src/views/components/Businessneeds/Approvaldetails.vue
@@ -1,6 +1,6 @@
-
+
基本信息
-
+
-
+
@@ -46,11 +46,6 @@
-
+
+
diff --git a/src/views/components/CityOptions/index.vue b/src/views/components/CityOptions/index.vue
index 30fc8d6..cd3d72c 100644
--- a/src/views/components/CityOptions/index.vue
+++ b/src/views/components/CityOptions/index.vue
@@ -158,19 +158,41 @@ const validateForm = async () => {
};
getProvinceList();
+
watch(
- modelValue,
+ () => modelValue.value.province,
(val) => {
- if (val.province) {
- getCityListByProvinceId(val.province);
- }
- if (val.city) {
- getAreaListByCityId(val.city);
- }
+ console.log("changed province");
+ val && getCityListByProvinceId(val);
},
- { deep: true }
+ {
+ immediate: true,
+ }
);
+watch(
+ () => modelValue.value.city,
+ (val) => {
+ console.log("changed city");
+ val && getAreaListByCityId(val);
+ },
+ {
+ immediate: true,
+ }
+);
+// 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/EnterpriseDemandForm/index.vue b/src/views/components/EnterpriseDemandForm/index.vue
index 1a87d61..c6adab2 100644
--- a/src/views/components/EnterpriseDemandForm/index.vue
+++ b/src/views/components/EnterpriseDemandForm/index.vue
@@ -153,6 +153,7 @@
\ No newline at end of file
+
diff --git a/src/views/components/ExpertForm/index.vue b/src/views/components/ExpertForm/index.vue
index 00c3d7a..35785df 100644
--- a/src/views/components/ExpertForm/index.vue
+++ b/src/views/components/ExpertForm/index.vue
@@ -124,13 +124,13 @@
-
+
+
@@ -346,13 +346,13 @@
import CityOptions from "@/views/components/CityOptions";
// import FieldOptions from "@/views/components/FieldOptions";
import InputBoxAdd from "@/views/components/InputBoxAdd";
-import { researchSelect } from "@/api/dataList/research";
-import { laboratorySelect } from "@/api/dataList/laboratory";
+// import { researchSelect } from "@/api/dataList/research";
+// import { laboratorySelect } from "@/api/dataList/laboratory";
import { tenantSelect } from "@/api/subPlatform/tenant";
import { enterpriseOptions } from "@/utils/parameter";
import { reactive, ref, toRefs } from "vue";
-import WangEditor from "../../../components/WangEditor/index.vue";
-import SiteOptions from "@/views/components/SiteOptions";
+import WangEditor from "@/components/WangEditor/index.vue";
+// import SiteOptions from "@/views/components/SiteOptions";
import FieldOptions from "@/views/components/FieldOptions";
const props = defineProps({
diff --git a/src/views/components/ExpertForm/indexcopy.vue b/src/views/components/ExpertForm/indexcopy.vue
index 7f98461..a2aff04 100644
--- a/src/views/components/ExpertForm/indexcopy.vue
+++ b/src/views/components/ExpertForm/indexcopy.vue
@@ -292,8 +292,8 @@
import CityOptions from "@/views/components/CityOptions";
// import FieldOptions from "@/views/components/FieldOptions";
import InputBoxAdd from "@/views/components/InputBoxAdd";
-import { researchSelect } from "@/api/dataList/research";
-import { laboratorySelect } from "@/api/dataList/laboratory";
+// import { researchSelect } from "@/api/dataList/research";
+// import { laboratorySelect } from "@/api/dataList/laboratory";
import { tenantSelect } from "@/api/subPlatform/tenant";
import { enterpriseOptions } from "@/utils/parameter";
import { reactive, ref, toRefs } from "vue";
diff --git a/src/views/components/FieldOptions/index.vue b/src/views/components/FieldOptions/index.vue
index 0ac06f1..ed519ac 100644
--- a/src/views/components/FieldOptions/index.vue
+++ b/src/views/components/FieldOptions/index.vue
@@ -70,7 +70,7 @@
{{ getFieldNameById(tag) }}
@@ -216,7 +216,7 @@ watch(
modelValue,
(newVal) => {
modelValue.value.industrys = [];
- console.log(modelValue.value.industry ? 1 : 0);
+ // console.log(modelValue.value.industry ? 1 : 0);
let industrysList = modelValue.value.industry
? modelValue.value.industry.split(",")
: [];
diff --git a/src/views/components/InputBoxAdd/index.vue b/src/views/components/InputBoxAdd/index.vue
index 30aff47..1529fe1 100644
--- a/src/views/components/InputBoxAdd/index.vue
+++ b/src/views/components/InputBoxAdd/index.vue
@@ -31,7 +31,7 @@
{{ tag }}
@@ -77,8 +77,8 @@ const dataVal = ref("");
const formRef = ref(null);
const keyWordAdd = () => {
if (!dataVal.value.length) return ElMessage.error(`请输入${title.value}`);
- if(!modelValue.value[fieldKey.value]){
- modelValue.value[fieldKey.value]=[]
+ if (!modelValue.value[fieldKey.value]) {
+ modelValue.value[fieldKey.value] = [];
}
modelValue.value[fieldKey.value].push(dataVal.value);
dataVal.value = "";
diff --git a/src/views/components/LaboratoryForm/index.vue b/src/views/components/LaboratoryForm/index.vue
index cfa6b84..cc9a5f7 100644
--- a/src/views/components/LaboratoryForm/index.vue
+++ b/src/views/components/LaboratoryForm/index.vue
@@ -1,7 +1,7 @@
@@ -9,84 +9,65 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查找
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
\ No newline at end of file
+
diff --git a/src/views/dataAuditList/Enterpriseproducts/approval.vue b/src/views/dataAuditList/Enterpriseproducts/approval.vue
index 700f3a2..088add7 100644
--- a/src/views/dataAuditList/Enterpriseproducts/approval.vue
+++ b/src/views/dataAuditList/Enterpriseproducts/approval.vue
@@ -39,7 +39,7 @@
-
+
@@ -239,8 +239,9 @@ import {
cooperationOptions,
} from "@/utils/parameter";
import { useRoute, useRouter } from "vue-router";
+import saveAs from "file-saver";
import { ElMessage } from "element-plus";
-import { customDownload } from "@/utils/request";
+import { customDownload, downloadFile } from "@/utils/request";
// import WangEditor from "@/components/WangEditor/index.vue";
// const isAdd = ref(false);
const route = useRoute();
@@ -270,6 +271,7 @@ const getDetail = async (id) => {
form.value.cooperationModeArr = data.cooperationMode
? data.cooperationMode.split(",")
: [];
+ // form.value.keywords = data.keyword ? data.keyword.split(",") : [];
};
if (route.query.id) {
getDetail(route.query.id);
@@ -277,13 +279,15 @@ if (route.query.id) {
const downloadProductImage = () => {
const filename =
form.value.image.split("/")[form.value.image.split("/").length - 1];
- customDownload(form.value.image, {}, filename);
+ // saveAs(form.value.image, filename);
+ downloadFile(form.value.image, filename);
};
const downloadProductMaterial = () => {
const filename =
form.value.material.split("/")[form.value.material.split("/").length - 1];
- const baseUrl = import.meta.env.VITE_APP_BASE_API;
- customDownload(`/file${form.value.material}`, {}, filename);
+ // const baseUrl = import.meta.env.VITE_APP_BASE_API;
+ // customDownload(`/file${form.value.material}`, {}, filename);
+ downloadFile(form.value.material, filename);
};
const submitForm = async (status) => {
diff --git a/src/views/dataAuditList/achievement/approval.vue b/src/views/dataAuditList/achievement/approval.vue
index b09c5c2..af9f58a 100644
--- a/src/views/dataAuditList/achievement/approval.vue
+++ b/src/views/dataAuditList/achievement/approval.vue
@@ -13,10 +13,10 @@
-
+
@@ -38,10 +38,15 @@
fieldKey="customers"
ref="customerFormRef"
/>
-
+
-
+
-
-
+
+
+
+
+
+
-
+
@@ -155,6 +165,7 @@
diff --git a/src/views/dataAuditList/serviceDemand/index.vue b/src/views/dataAuditList/serviceDemand/index.vue
index 6c27211..caed58e 100644
--- a/src/views/dataAuditList/serviceDemand/index.vue
+++ b/src/views/dataAuditList/serviceDemand/index.vue
@@ -62,21 +62,21 @@
-
+ > -->
{{ categoryMap[row.category] }}需求
-
+ > -->
-->
-
+
-
+
{{ row.industrys[row.industrys.length - 1] }}
-
+
@@ -317,7 +317,7 @@ import {
} from "@/api/dataList/enterprise";
import md5 from "js-md5";
import { getToken } from "@/utils/auth";
-import SiteOptions from "@/views/components/SiteOptions";
+// import SiteOptions from "@/views/components/SiteOptions";
// import axios from "axios";
// import { download } from "@/utils/request";
// import dayjs from "dayjs";
@@ -360,7 +360,7 @@ const upload = reactive({
const { queryParams } = toRefs(data);
const showSearch = ref(true);
-const siteList = ref([]);
+// const siteList = ref([]);
const loading = ref(true);
const total = ref(0);
const dataList = ref([]);
@@ -374,10 +374,10 @@ const getList = async () => {
loading.value = false;
};
// 获取站点列表
-const getSiteList = async () => {
- const resp = await tenantSelect();
- siteList.value = resp.rows;
-};
+// const getSiteList = async () => {
+// const resp = await tenantSelect();
+// siteList.value = resp.rows;
+// };
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
@@ -624,5 +624,5 @@ const handleExport = () => {
});
};
getList();
-getSiteList();
+// getSiteList();
diff --git a/src/views/dataList/expert/add.vue b/src/views/dataList/expert/add.vue
index 535b897..d3f9d36 100644
--- a/src/views/dataList/expert/add.vue
+++ b/src/views/dataList/expert/add.vue
@@ -71,8 +71,12 @@ const submitForm = async () => {
const getDetailById = async () => {
if (route.query.id) {
+ const obj = Object.assign({}, route, { title: "修改专家" });
+ tab.updatePage(obj);
const { data } = await companyDetail(route.query.id);
form.value = data;
+ form.value.keywords = data.keyword ? data.keyword.split(",") : [];
+ console.log(form.value);
form.value.district = data.area;
}
};
diff --git a/src/views/dataList/expert/index.vue b/src/views/dataList/expert/index.vue
index 5949a26..c88ea2f 100644
--- a/src/views/dataList/expert/index.vue
+++ b/src/views/dataList/expert/index.vue
@@ -11,9 +11,9 @@
/>
-
+
-
+
@@ -251,7 +251,7 @@ import {
restPassword,
} from "@/api/dataList/expert";
import md5 from "js-md5";
-import SiteOptions from "@/views/components/SiteOptions";
+// import SiteOptions from "@/views/components/SiteOptions";
import { tenantSelect } from "@/api/subPlatform/tenant";
import { expertList } from "@/api/expert/expert";
import { useRouter } from "vue-router";
@@ -262,7 +262,7 @@ import { ElLoading, ElMessageBox, ElMessage } from "element-plus";
import dayjs from "dayjs";
import request from "@/utils/request";
const router = useRouter();
-const siteList = ref([]);
+// const siteList = ref([]);
const dataList = ref([]);
const total = ref(0);
const showSearch = ref(true);
@@ -369,11 +369,11 @@ const submitResetPassword = async () => {
showResetPassword.value = false;
};
-// 获取站点列表
-const getSiteList = async () => {
- const resp = await tenantSelect();
- siteList.value = resp.rows;
-};
+// // 获取站点列表
+// const getSiteList = async () => {
+// const resp = await tenantSelect();
+// siteList.value = resp.rows;
+// };
/** 查询专家列表 */
const getList = async () => {
loading.value = true;
@@ -505,6 +505,6 @@ const handleExport = () => {
);
});
};
-getSiteList();
+// getSiteList();
getList();
diff --git a/src/views/dataList/laboratory/add.vue b/src/views/dataList/laboratory/add.vue
new file mode 100644
index 0000000..820cfe5
--- /dev/null
+++ b/src/views/dataList/laboratory/add.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
diff --git a/src/views/dataList/laboratory/index.vue b/src/views/dataList/laboratory/index.vue
new file mode 100644
index 0000000..e905d37
--- /dev/null
+++ b/src/views/dataList/laboratory/index.vue
@@ -0,0 +1,531 @@
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+ 导入
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 修改
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+
+ 仅允许导入xls、xlsx格式文件。
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/dataList/thesis/index.vue b/src/views/dataList/thesis/index.vue
index f2aa59d..b6e7690 100644
--- a/src/views/dataList/thesis/index.vue
+++ b/src/views/dataList/thesis/index.vue
@@ -32,9 +32,9 @@
-
+
- {{ row.tags }}
+ {{ row.keyword }}
@@ -95,7 +95,7 @@
:labelWidth="100"
v-model="formData"
title="标签"
- fieldKey="tagsList"
+ fieldKey="keywords"
/>
-
+
@@ -106,7 +106,7 @@ const data = reactive({
});
const total = ref(0);
const dataList = ref([]);
-const siteList = ref([]);
+// const siteList = ref([]);
const { queryData } = toRefs(data);
const examineStatusDict = {
0: "审核中",
@@ -120,10 +120,10 @@ const getList = async () => {
total.value = res.total;
};
// 获取站点列表
-const getSiteList = async () => {
- const resp = await tenantSelect();
- siteList.value = resp.rows;
-};
+// const getSiteList = async () => {
+// const resp = await tenantSelect();
+// siteList.value = resp.rows;
+// };
// 搜索查询
const handleQuery = () => {
getList(queryData.value);
@@ -145,6 +145,6 @@ const btnAudit = (id) => {
});
};
getList();
-getSiteList();
+// getSiteList();
diff --git a/src/views/website/activity/active/FieldOptions/index.vue b/src/views/website/activity/active/FieldOptions/index.vue
new file mode 100644
index 0000000..618a906
--- /dev/null
+++ b/src/views/website/activity/active/FieldOptions/index.vue
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+ {{ tag }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/website/activity/active/index.vue b/src/views/website/activity/active/index.vue
index 49d8b6c..fd527f8 100644
--- a/src/views/website/activity/active/index.vue
+++ b/src/views/website/activity/active/index.vue
@@ -404,13 +404,14 @@ import {
cityList,
districtList,
} from "@/api/config";
-import FieldOptions from "@/views/components/FieldOptions";
+import FieldOptions from "./FieldOptions";
// import { cloneDeep } from "lodash";
import { reactive, toRefs } from "vue";
// import { constants } from "buffer";
import { ElMessage, ElMessageBox } from "element-plus";
import WangEditor from "@/components/WangEditor/index.vue";
import SiteOptions from "@/views/components/SiteOptions";
+import { useRouter } from "vue-router";
const router = useRouter();
const dataList = ref([]);
const loading = ref(true);
@@ -449,7 +450,7 @@ const data = reactive({
pageSize: 10,
},
form: {
- industrys: [],
+ // industrys: [],
},
rules: {
title: [{ required: true, message: "活动名称不能为空", trigger: "blur" }],
@@ -546,7 +547,7 @@ const reset = () => {
id: undefined,
tenantId: undefined,
title: undefined,
- industrys: [],
+ // industrys: [],
// notifyCrowd: [],
maxNumber: 0,
isHome: 1,
@@ -636,8 +637,12 @@ const handleUpdate = async (row) => {
const resp = await activityDetail(row.id);
const formData = resp.data;
formData.notifyCrowds = formData.notifyCrowd?.split(",") ?? [];
- formData.industrys = formData.industryName?.split(",") ?? [];
+ // formData.industrys = formData.industryName?.split(",") ?? [];
+ // formData.industrys = ["eqwe", "eqwe"];
+ // console.log(formData);
form.value = formData;
+ // form.value.industrys = ["rnm", "fdf"];
+ // console.log(form.value);
showEditDialog.value = true;
title.value = "修改";
};
diff --git a/vite.config.js b/vite.config.js
index 640e33f..99d6024 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -31,7 +31,7 @@ export default defineConfig(({ mode, command }) => {
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
"/dev-api": {
- // target: 'http://192.168.110.10:1618',
+ // target: "http://192.168.110.10:1618",
target: "http://101.34.131.16:1618",
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""),