fixed
This commit is contained in:
Binary file not shown.
@ -74,6 +74,6 @@ export function serviceCaseEdit(data) {
|
|||||||
export function serviceCaseDelete(ids) {
|
export function serviceCaseDelete(ids) {
|
||||||
return request({
|
return request({
|
||||||
url: `/business/solutionCase/${ids}`,
|
url: `/business/solutionCase/${ids}`,
|
||||||
method: "post",
|
method: "delete",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,8 @@ import {
|
|||||||
watch,
|
watch,
|
||||||
} from "vue";
|
} from "vue";
|
||||||
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
||||||
|
import request from "@/utils/request";
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
export default {
|
export default {
|
||||||
components: { Editor, Toolbar },
|
components: { Editor, Toolbar },
|
||||||
props: {
|
props: {
|
||||||
@ -76,26 +77,45 @@ export default {
|
|||||||
);
|
);
|
||||||
const { height } = toRefs(props);
|
const { height } = toRefs(props);
|
||||||
const toolbarConfig = {
|
const toolbarConfig = {
|
||||||
toolbarKeys: [
|
// toolbarKeys: [
|
||||||
"bold",
|
// "bold",
|
||||||
"underline",
|
// "underline",
|
||||||
"italic",
|
// "italic",
|
||||||
"through",
|
// "through",
|
||||||
"color",
|
// "color",
|
||||||
"bgColor",
|
// "bgColor",
|
||||||
"fontSize",
|
// "fontSize",
|
||||||
"fontFamily",
|
// "fontFamily",
|
||||||
"lineHeight",
|
// "lineHeight",
|
||||||
// "emotion",
|
// "uploadImage",
|
||||||
// "redo",
|
// // "emotion",
|
||||||
// "undo",
|
// // "redo",
|
||||||
],
|
// // "undo",
|
||||||
|
// ],
|
||||||
};
|
};
|
||||||
const editorConfig = {
|
const editorConfig = {
|
||||||
placeholder: "请输入内容...",
|
placeholder: "请输入内容...",
|
||||||
autoFocus: props.focus,
|
autoFocus: props.focus,
|
||||||
maxLength: 140,
|
maxLength: 140,
|
||||||
readOnly: props.readOnly,
|
readOnly: props.readOnly,
|
||||||
|
MENU_CONF: {
|
||||||
|
uploadImage: {
|
||||||
|
async customUpload(file, insertFn) {
|
||||||
|
const fd = new FormData();
|
||||||
|
fd.append("file", file);
|
||||||
|
const resp = await request({
|
||||||
|
url: "/common/upload",
|
||||||
|
method: "post",
|
||||||
|
data: fd,
|
||||||
|
headers: {
|
||||||
|
Authorization: "Bearer " + getToken(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
insertFn(resp.url, "", resp.url);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// console.log(editorRef.value.getConfig());
|
// console.log(editorRef.value.getConfig());
|
||||||
@ -110,6 +130,7 @@ export default {
|
|||||||
|
|
||||||
const handleCreated = (editor) => {
|
const handleCreated = (editor) => {
|
||||||
editorRef.value = editor; // 记录 editor 实例,重要!
|
editorRef.value = editor; // 记录 editor 实例,重要!
|
||||||
|
console.log(editorRef.value.getAllMenuKeys());
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleChange = (editor) => {
|
const handleChange = (editor) => {
|
||||||
|
@ -35,19 +35,19 @@ export const enterpriseOptions = [
|
|||||||
];
|
];
|
||||||
// 成果成熟度 技术
|
// 成果成熟度 技术
|
||||||
export const maturityOptions = [
|
export const maturityOptions = [
|
||||||
{ key: 1, value: "正在研发" },
|
{ key: "1", value: "正在研发" },
|
||||||
{ key: 2, value: "小试阶段" },
|
{ key: "2", value: "小试阶段" },
|
||||||
{ key: 3, value: "通过小试" },
|
{ key: "3", value: "通过小试" },
|
||||||
{ key: 4, value: "中试阶段" },
|
{ key: "4", value: "中试阶段" },
|
||||||
{ key: 5, value: "通过中试" },
|
{ key: "5", value: "通过中试" },
|
||||||
{ key: 6, value: "可规模生产" },
|
{ key: "6", value: "可规模生产" },
|
||||||
];
|
];
|
||||||
// 成果领先型 领先标准
|
// 成果领先型 领先标准
|
||||||
export const leadOptions = [
|
export const leadOptions = [
|
||||||
{ key: 1, value: "国内先进" },
|
{ key: "1", value: "国内先进" },
|
||||||
{ key: 2, value: "国内领先" },
|
{ key: "2", value: "国内领先" },
|
||||||
{ key: 3, value: "国际先进" },
|
{ key: "3", value: "国际先进" },
|
||||||
{ key: 4, value: "国际领先" },
|
{ key: "4", value: "国际领先" },
|
||||||
];
|
];
|
||||||
// 专利类型
|
// 专利类型
|
||||||
export const patentOptions = [
|
export const patentOptions = [
|
||||||
@ -57,13 +57,13 @@ export const patentOptions = [
|
|||||||
];
|
];
|
||||||
// 合作模式
|
// 合作模式
|
||||||
export const cooperationOptions = [
|
export const cooperationOptions = [
|
||||||
{ key: 101, value: "技术转让" },
|
{ key: "101", value: "技术转让" },
|
||||||
{ key: 102, value: "技术许可" },
|
{ key: "102", value: "技术许可" },
|
||||||
{ key: 103, value: "技术入股" },
|
{ key: "103", value: "技术入股" },
|
||||||
{ key: 104, value: "合作开发" },
|
{ key: "104", value: "合作开发" },
|
||||||
{ key: 105, value: "融资" },
|
{ key: "105", value: "融资" },
|
||||||
{ key: 106, value: "公司" },
|
{ key: "106", value: "公司" },
|
||||||
{ key: 107, value: "代理加盟" },
|
{ key: "107", value: "代理加盟" },
|
||||||
{ key: 108, value: "市场推广" },
|
{ key: "108", value: "市场推广" },
|
||||||
{ key: 109, value: "其他" },
|
{ key: "109", value: "其他" },
|
||||||
];
|
];
|
||||||
|
@ -154,5 +154,30 @@ export function download(url, params, filename) {
|
|||||||
downloadLoadingInstance.close();
|
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();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default service
|
export default service
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="企业名称:" prop="title">
|
<el-form-item label="企业名称:" prop="enterpriseName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.title"
|
v-model="form.enterpriseName"
|
||||||
placeholder="请输入企业名称"
|
placeholder="请输入企业名称"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -51,7 +51,7 @@
|
|||||||
v-model="form"
|
v-model="form"
|
||||||
title="应用客户"
|
title="应用客户"
|
||||||
placeholder="请输入应用客户"
|
placeholder="请输入应用客户"
|
||||||
fieldKey="customer"
|
fieldKey="customers"
|
||||||
ref="customerForm"
|
ref="customerForm"
|
||||||
:disabled="true"
|
:disabled="true"
|
||||||
/>
|
/>
|
||||||
@ -77,9 +77,9 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="成果领先性:" prop="lead_standard">
|
<el-form-item label="成果领先性:" prop="leadStandard">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.lead_standard"
|
v-model="form.leadStandard"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择成果领先性"
|
placeholder="请选择成果领先性"
|
||||||
>
|
>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="合作模式:">
|
<el-form-item label="合作模式:">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.cooperation_mode"
|
v-model="form.cooperationMode"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择合作模式"
|
placeholder="请选择合作模式"
|
||||||
>
|
>
|
||||||
@ -149,7 +149,13 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="产品图片:" prop="image">
|
<el-form-item label="产品图片:" prop="image">
|
||||||
<ImageUpload v-model="form.image" :limit="1" :disabled="true" />
|
<!-- <ImageUpload v-model="form.image" :limit="1" :disabled="true" /> -->
|
||||||
|
<el-link
|
||||||
|
:disabled="!form.image"
|
||||||
|
type="primary"
|
||||||
|
@click="downloadProductImage"
|
||||||
|
>下载产品图片</el-link
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="12">
|
<!-- <el-col :span="12">
|
||||||
@ -163,17 +169,23 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<p>
|
<!-- <p>
|
||||||
<b>图片材料上传</b>
|
<b>图片材料上传</b>
|
||||||
</p>
|
</p> -->
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="成熟度证明材料:">
|
<el-form-item label="成熟度证明材料:">
|
||||||
<FileUpload
|
<!-- <FileUpload
|
||||||
v-model="form.file"
|
v-model="form.file"
|
||||||
:limit="1"
|
:limit="1"
|
||||||
:fileType="['doc', 'xls', 'ppt', 'txt', 'pdf', 'jpg']"
|
:fileType="['doc', 'xls', 'ppt', 'txt', 'pdf', 'jpg']"
|
||||||
/>
|
/> -->
|
||||||
|
<el-link
|
||||||
|
:disabled="!form.material"
|
||||||
|
type="primary"
|
||||||
|
@click="downloadProductMaterial"
|
||||||
|
>下载成熟度证明材料</el-link
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -201,6 +213,7 @@ import {
|
|||||||
} from "@/utils/parameter";
|
} from "@/utils/parameter";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import { ElMessage } from "element-plus";
|
import { ElMessage } from "element-plus";
|
||||||
|
import { customDownload } from "@/utils/request";
|
||||||
// import WangEditor from "@/components/WangEditor/index.vue";
|
// import WangEditor from "@/components/WangEditor/index.vue";
|
||||||
// const isAdd = ref(false);
|
// const isAdd = ref(false);
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
@ -231,6 +244,18 @@ const getDetail = async (id) => {
|
|||||||
if (route.query.id) {
|
if (route.query.id) {
|
||||||
getDetail(route.query.id);
|
getDetail(route.query.id);
|
||||||
}
|
}
|
||||||
|
const downloadProductImage = () => {
|
||||||
|
const filename =
|
||||||
|
form.value.image.split("/")[form.value.image.split("/").length - 1];
|
||||||
|
customDownload(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 submitForm = async (status) => {
|
const submitForm = async (status) => {
|
||||||
await updateEnterpriseApprovalProduct({ ...form.value, status });
|
await updateEnterpriseApprovalProduct({ ...form.value, status });
|
||||||
let successMessage;
|
let successMessage;
|
||||||
|
@ -51,7 +51,7 @@
|
|||||||
<el-table-column
|
<el-table-column
|
||||||
label="所属企业"
|
label="所属企业"
|
||||||
align="center"
|
align="center"
|
||||||
prop="enterprise"
|
prop="enterpriseName"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column label="站点" align="center">
|
<el-table-column label="站点" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
132
src/views/components/Businessneeds/Approvaldetails copy.vue
Normal file
132
src/views/components/Businessneeds/Approvaldetails copy.vue
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<!-- 企业需求弹框 -->
|
||||||
|
<template>
|
||||||
|
<el-dialog title="基本信息" v-model="isShow">
|
||||||
|
<el-form label-width="150px">
|
||||||
|
<el-form-item label="所属企业">
|
||||||
|
<el-input placeholder="请输入所属企业"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所属需求名称">
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入所属需求名称"
|
||||||
|
v-model="modelValue.title"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="需求描述">
|
||||||
|
<Editor v-model="modelValue.introduce"></Editor>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="行业分类">
|
||||||
|
<el-select placeholder="请输入" style="width: 100px">
|
||||||
|
<el-option></el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-select placeholder="请输入" style="width: 100px">
|
||||||
|
<el-option></el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-select placeholder="请输入" style="width: 100px">
|
||||||
|
<el-option></el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-select placeholder="请输入" style="width: 100px">
|
||||||
|
<el-option></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="需求类别">
|
||||||
|
<el-checkbox-group v-model="modelValue.kinds">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="item in checkList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
>{{ item.name }}</el-checkbox
|
||||||
|
>
|
||||||
|
</el-checkbox-group>
|
||||||
|
<!-- <el-checkbox-group v-model="checkList">
|
||||||
|
<el-checkbox label="成果难题解决" />
|
||||||
|
<el-checkbox label="成果储备/项目投资" />
|
||||||
|
<el-checkbox label="新成果开发" />
|
||||||
|
<el-checkbox label="校验检测" />
|
||||||
|
<el-checkbox label="其他" />
|
||||||
|
</el-checkbox-group> -->
|
||||||
|
</el-form-item>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item
|
||||||
|
label="成果需求预算:"
|
||||||
|
:prop="modelValue.budgetMode == 1 ? 'budget' : ''"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="modelValue.budget"
|
||||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
|
||||||
|
placeholder="请输入技术需求预算"
|
||||||
|
>
|
||||||
|
<template #append>万元</template>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label-width="50px">
|
||||||
|
<el-checkbox
|
||||||
|
false-label="1"
|
||||||
|
true-label="2"
|
||||||
|
v-model="modelValue.budgetMode"
|
||||||
|
>面议</el-checkbox
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="截至时间">
|
||||||
|
<el-input placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="需求联系人">
|
||||||
|
<el-input placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="联系人手机号码">
|
||||||
|
<el-input placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-form-item label="想合作的企业及模式">
|
||||||
|
<el-input placeholder="请输入"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-row type="flex" justify="end">
|
||||||
|
<el-button type="primary">驳回</el-button>
|
||||||
|
<el-button type="primary">通过需求</el-button>
|
||||||
|
</el-row>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import Editor from "@/components/WangEditor";
|
||||||
|
import { ref, toRefs } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
isShow: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
modelValue: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const { isShow, modelValue } = toRefs(props);
|
||||||
|
const checkList = reactive([
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: "成果推广",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: "关键成果解决",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: "对接专家院士",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
name: "上市辅导",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
<style></style>
|
@ -1,76 +1,200 @@
|
|||||||
<!-- 企业需求弹框 -->
|
<!-- 企业需求弹框 -->
|
||||||
<template>
|
<template>
|
||||||
<el-dialog title="基本信息" v-model="isShow">
|
<el-dialog title="基本信息" v-model="isShow">
|
||||||
<el-form label-width="150px">
|
<el-form ref="formRef" :model="modelValue" :label-width="labelWidth + 'px'">
|
||||||
<el-form-item label="所属企业">
|
<p><b>基本信息</b></p>
|
||||||
<el-input placeholder=""></el-input>
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="成果需求名称:" prop="title">
|
||||||
|
<el-input v-model="modelValue.title"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属需求名称">
|
</el-col>
|
||||||
<el-input placeholder=""></el-input>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<!-- <el-checkbox label="0" @change="handleCheck">其他</el-checkbox> -->
|
||||||
|
<el-form-item label="需求类别:">
|
||||||
|
<el-checkbox-group v-model="modelValue.kinds">
|
||||||
|
<el-checkbox
|
||||||
|
v-for="item in checkList"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
>{{ item.name }}</el-checkbox
|
||||||
|
>
|
||||||
|
</el-checkbox-group>
|
||||||
|
<!-- <el-row :gutter="20">
|
||||||
|
<el-col :span="20">
|
||||||
|
<el-input
|
||||||
|
v-model="checkInput"
|
||||||
|
placeholder="请输入需求类别"
|
||||||
|
></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-button type="primary" @click="addCheck">添加</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="需求描述">
|
</el-col>
|
||||||
<Editor></Editor>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="需求描述:" prop="introduce">
|
||||||
|
<!-- <Editor v-model="modelValue.add" :minHeight="150" /> -->
|
||||||
|
<wangEditor
|
||||||
|
v-model="modelValue.introduce"
|
||||||
|
width="100%"
|
||||||
|
min-height="150px"
|
||||||
|
></wangEditor>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="行业分类">
|
</el-col>
|
||||||
<el-select placeholder="" style="width: 100px;">
|
</el-row>
|
||||||
<el-option></el-option>
|
|
||||||
</el-select>
|
<!-- <CityOptions
|
||||||
<el-select placeholder="" style="width: 100px;">
|
v-model="form"
|
||||||
<el-option></el-option>
|
:labelWidth="labelWidth"
|
||||||
</el-select>
|
ref="cityForm"
|
||||||
<el-select placeholder="" style="width: 100px;">
|
/> -->
|
||||||
<el-option></el-option>
|
<FieldOptions
|
||||||
</el-select>
|
v-model="modelValue"
|
||||||
<el-select placeholder="" style="width: 100px;">
|
:labelWidth="labelWidth"
|
||||||
<el-option></el-option>
|
ref="fieldFormRef"
|
||||||
</el-select>
|
/>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item
|
||||||
|
label="成果需求预算:"
|
||||||
|
:prop="modelValue.budgetMode == 1 ? 'budget' : ''"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="modelValue.budget"
|
||||||
|
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
|
||||||
|
placeholder="请输入技术需求预算"
|
||||||
|
>
|
||||||
|
<template #append>万元</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="需求类别">
|
</el-col>
|
||||||
<el-checkbox-group v-model="checkList">
|
<el-col :span="12">
|
||||||
<el-checkbox label="成果难题解决" />
|
<el-form-item label-width="50px">
|
||||||
<el-checkbox label="成果储备/项目投资" />
|
<el-checkbox
|
||||||
<el-checkbox label="新成果开发" />
|
false-label="1"
|
||||||
<el-checkbox label="校验检测" />
|
true-label="2"
|
||||||
<el-checkbox label="其他" />
|
v-model="modelValue.budgetMode"
|
||||||
</el-checkbox-group>
|
>面议</el-checkbox
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="成果需求预算">
|
</el-col>
|
||||||
<el-input style="width: 200px;" placeholder=""></el-input>万元 <input type="checkbox">面议
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="截止时间:" prop="deadline">
|
||||||
|
<el-date-picker
|
||||||
|
style="width: 100%"
|
||||||
|
v-model="modelValue.deadline"
|
||||||
|
type="date"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
placeholder="请选择截止时间"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="截至时间">
|
</el-col>
|
||||||
<el-input placeholder=""></el-input>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="需求联系人:" prop="name">
|
||||||
|
<el-input
|
||||||
|
v-model="modelValue.name"
|
||||||
|
placeholder="请输入需求联系人"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-row >
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="需求联系人">
|
<el-form-item label="联系人手机号:" prop="mobile">
|
||||||
<el-input placeholder=""></el-input>
|
<el-input
|
||||||
|
v-model="modelValue.mobile"
|
||||||
|
placeholder="请输入联系人手机号"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
</el-row>
|
||||||
<el-form-item label="联系人手机号码">
|
|
||||||
<el-input placeholder=""></el-input>
|
<!-- <el-row>
|
||||||
</el-form-item>
|
<el-col :span="12">
|
||||||
</el-col>
|
<el-form-item label="需求提交人:" prop="commitUserName">
|
||||||
</el-row>
|
<el-input
|
||||||
<el-form-item label="想合作的企业及模式">
|
v-model="modelValue.commitUserName"
|
||||||
<el-input placeholder=""></el-input>
|
placeholder="请输入需求提交人"
|
||||||
</el-form-item>
|
></el-input>
|
||||||
</el-form>
|
</el-form-item>
|
||||||
<el-row type="flex" justify="end">
|
</el-col>
|
||||||
<el-button type="primary">驳回</el-button>
|
<el-col :span="12">
|
||||||
<el-button type="primary">通过需求</el-button>
|
<el-form-item label="需求提交人手机号:" prop="commitUserPhone">
|
||||||
</el-row>
|
<el-input
|
||||||
</el-dialog>
|
v-model="modelValue.commitUserPhone"
|
||||||
|
placeholder="请输入需求提交人手机号"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row> -->
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<InputBoxAdd
|
||||||
|
:labelWidth="labelWidth"
|
||||||
|
v-model="modelValue"
|
||||||
|
title="想合作的单位及模式"
|
||||||
|
placeholder=""
|
||||||
|
fieldKey="wants"
|
||||||
|
ref="directionsFormRef"
|
||||||
|
/>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<el-row type="flex" justify="end">
|
||||||
|
<el-button type="primary">驳回</el-button>
|
||||||
|
<el-button type="primary">通过需求</el-button>
|
||||||
|
</el-row>
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import Editor from '@/components/WangEditor'
|
import WangEditor from "@/components/WangEditor";
|
||||||
import { ref } from 'vue';
|
import FieldOptions from "@/views/components/FieldOptions";
|
||||||
const props=defineProps({
|
import InputBoxAdd from "@/views/components/InputBoxAdd";
|
||||||
isShow:{
|
import { ref, toRefs } from "vue";
|
||||||
type:Boolean,
|
const props = defineProps({
|
||||||
required:true
|
isShow: {
|
||||||
}
|
type: Boolean,
|
||||||
})
|
required: true,
|
||||||
const checkList=ref([])
|
},
|
||||||
|
modelValue: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const { isShow, modelValue } = toRefs(props);
|
||||||
|
const labelWidth = 160;
|
||||||
|
const checkList = reactive([
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: "成果推广",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: "关键成果解决",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: "对接专家院士",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
name: "上市辅导",
|
||||||
|
},
|
||||||
|
]);
|
||||||
</script>
|
</script>
|
||||||
<style></style>
|
<style></style>
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column label="操作" align="center">
|
<el-table-column label="操作" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button type="text" @click="shenpi(row.id)">审批</el-button>
|
<el-button type="text" @click="approval(row)">审批</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -96,7 +96,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 审批详情 -->
|
<!-- 审批详情 -->
|
||||||
<Edialog :is-show="isShow"></Edialog>
|
<Edialog :is-show="isShow" v-model="demandForm"></Edialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -105,24 +105,35 @@ import Edialog from "../../views/components/Businessneeds/Approvaldetails.vue";
|
|||||||
import SiteOptions from "@/views/components/SiteOptions";
|
import SiteOptions from "@/views/components/SiteOptions";
|
||||||
import { tenantSelect } from "@/api/subPlatform/tenant";
|
import { tenantSelect } from "@/api/subPlatform/tenant";
|
||||||
import { ref, toRefs, defineComponent } from "vue";
|
import { ref, toRefs, defineComponent } from "vue";
|
||||||
|
import { cloneDeep } from "lodash";
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
status: 0,
|
status: 0,
|
||||||
},
|
},
|
||||||
|
demandForm: {},
|
||||||
});
|
});
|
||||||
const siteList = ref([]);
|
const siteList = ref([]);
|
||||||
const dataList = ref([]);
|
const dataList = ref([]);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const isShow = ref(false);
|
const isShow = ref(false);
|
||||||
const { queryParams } = toRefs(data);
|
const { queryParams, demandForm } = toRefs(data);
|
||||||
|
const queryFormRef = ref();
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
const resp = await businessList(queryParams.value);
|
const resp = await businessList(queryParams.value);
|
||||||
dataList.value = resp.rows;
|
dataList.value = resp.rows;
|
||||||
total.value = resp.total;
|
total.value = resp.total;
|
||||||
};
|
};
|
||||||
const shenpi = () => {
|
const approval = (row) => {
|
||||||
|
demandForm.value = cloneDeep(row);
|
||||||
|
if (!row.kinds) {
|
||||||
|
demandForm.value.kinds = row.kind?.split(",") ?? [];
|
||||||
|
}
|
||||||
|
// if (!row.industrys) {
|
||||||
|
// demandForm.value.industrys = row.;
|
||||||
|
// }
|
||||||
isShow.value = true;
|
isShow.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
import { defineConfig, loadEnv } from 'vite'
|
import { defineConfig, loadEnv } from "vite";
|
||||||
import path from 'path'
|
import path from "path";
|
||||||
import createVitePlugins from './vite/plugins'
|
import createVitePlugins from "./vite/plugins";
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig(({ mode, command }) => {
|
export default defineConfig(({ mode, command }) => {
|
||||||
const env = loadEnv(mode, process.cwd())
|
const env = loadEnv(mode, process.cwd());
|
||||||
const { VITE_APP_ENV } = env
|
const { VITE_APP_ENV } = env;
|
||||||
return {
|
return {
|
||||||
// 部署生产环境和开发环境下的URL。
|
// 部署生产环境和开发环境下的URL。
|
||||||
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
||||||
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
||||||
base: VITE_APP_ENV === 'production' ? '/' : '/',
|
base: VITE_APP_ENV === "production" ? "/" : "/",
|
||||||
plugins: createVitePlugins(env, command === 'build'),
|
plugins: createVitePlugins(env, command === "build"),
|
||||||
resolve: {
|
resolve: {
|
||||||
// https://cn.vitejs.dev/config/#resolve-alias
|
// https://cn.vitejs.dev/config/#resolve-alias
|
||||||
alias: {
|
alias: {
|
||||||
// 设置路径
|
// 设置路径
|
||||||
'~': path.resolve(__dirname, './'),
|
"~": path.resolve(__dirname, "./"),
|
||||||
// 设置别名
|
// 设置别名
|
||||||
'@': path.resolve(__dirname, './src')
|
"@": path.resolve(__dirname, "./src"),
|
||||||
},
|
},
|
||||||
// https://cn.vitejs.dev/config/#resolve-extensions
|
// https://cn.vitejs.dev/config/#resolve-extensions
|
||||||
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
|
extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
|
||||||
},
|
},
|
||||||
// vite 相关配置
|
// vite 相关配置
|
||||||
server: {
|
server: {
|
||||||
@ -30,30 +30,30 @@ export default defineConfig(({ mode, command }) => {
|
|||||||
// open: true,
|
// open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
// https://cn.vitejs.dev/config/#server-proxy
|
// https://cn.vitejs.dev/config/#server-proxy
|
||||||
'/dev-api': {
|
"/dev-api": {
|
||||||
// target: 'http://120.26.107.74:1618',
|
// target: 'http://120.26.107.74:1618',
|
||||||
target: 'http://172.18.3.127:1618',
|
target: "http://101.34.131.16:1618",
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: (p) => p.replace(/^\/dev-api/, '')
|
rewrite: (p) => p.replace(/^\/dev-api/, ""),
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
//fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file
|
//fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file
|
||||||
css: {
|
css: {
|
||||||
postcss: {
|
postcss: {
|
||||||
plugins: [
|
plugins: [
|
||||||
{
|
{
|
||||||
postcssPlugin: 'internal:charset-removal',
|
postcssPlugin: "internal:charset-removal",
|
||||||
AtRule: {
|
AtRule: {
|
||||||
charset: (atRule) => {
|
charset: (atRule) => {
|
||||||
if (atRule.name === 'charset') {
|
if (atRule.name === "charset") {
|
||||||
atRule.remove();
|
atRule.remove();
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
})
|
});
|
||||||
|
BIN
zky_admin.zip
BIN
zky_admin.zip
Binary file not shown.
Reference in New Issue
Block a user