页面修改
This commit is contained in:
parent
69a76f946b
commit
b25199e9f0
@ -1,4 +1,4 @@
|
||||
NODE_ENV = 'development'
|
||||
|
||||
NODE_ENV = 'production'
|
||||
# Base API
|
||||
VITE_APP_BASE_URL=''
|
||||
VITE_APP_BASE_URL='https://ceshi-engineering.lihaink.cn'
|
@ -2,7 +2,7 @@ const config = {
|
||||
terminal: 1, //终端
|
||||
title: '后台管理系统', //网站默认标题
|
||||
version: '1.6.0', //版本号
|
||||
baseUrl: `${import.meta.env.VITE_APP_BASE_URL || ''}/`, //请求接口域名
|
||||
baseUrl: `${import.meta.env.VITE_APP_BASE_URL || 'https://ceshi-engineering.lihaink.cn'}/`, //请求接口域名
|
||||
urlPrefix: 'adminapi', //请求默认前缀
|
||||
timeout: 10 * 1000 //请求超时时长
|
||||
}
|
||||
|
@ -1,7 +1,9 @@
|
||||
<template>
|
||||
<header class="header">
|
||||
<div>
|
||||
</div>
|
||||
<div class="navbar">
|
||||
<div class="flex-1 flex">
|
||||
<div class="flex flex-1">
|
||||
<div class="navbar-item">
|
||||
<fold />
|
||||
</div>
|
||||
@ -12,6 +14,11 @@
|
||||
<breadcrumb />
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex">
|
||||
<menuLi></menuLi>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flex">
|
||||
<div class="navbar-item" v-if="!isMobile">
|
||||
<full-screen />
|
||||
@ -37,6 +44,7 @@ import FullScreen from './full-screen.vue'
|
||||
import UserDropDown from './user-drop-down.vue'
|
||||
import Setting from '../setting/index.vue'
|
||||
import MultipleTabs from './multiple-tabs.vue'
|
||||
import menuLi from './menuLi.vue'
|
||||
|
||||
import useSettingStore from '@/stores/modules/setting'
|
||||
const appStore = useAppStore()
|
||||
@ -48,8 +56,19 @@ const settingStore = useSettingStore()
|
||||
.navbar {
|
||||
height: var(--navbar-height);
|
||||
@apply flex px-2 bg-body;
|
||||
|
||||
.navbar-item {
|
||||
@apply h-full flex justify-center items-center hover:bg-page;
|
||||
@apply h-full flex justify-center items-center hover:bg-page;
|
||||
}
|
||||
}
|
||||
|
||||
.menu-li {
|
||||
display: flex;
|
||||
margin-left: 50px;
|
||||
}
|
||||
|
||||
.pointer{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
21
src/layout/default/components/header/menuLi.vue
Normal file
21
src/layout/default/components/header/menuLi.vue
Normal file
@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<div class="menu-li">
|
||||
<div class="flex items-center px-2 pointer">
|
||||
菜单信息1
|
||||
</div>
|
||||
<div class="flex items-center px-2 pointer">
|
||||
菜单信息2
|
||||
</div>
|
||||
<div class="flex items-center px-2 pointer">
|
||||
菜单信息3
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
@ -1,122 +1,119 @@
|
||||
<template>
|
||||
<div class="app-tabs pl-4 flex bg-body">
|
||||
<div class="flex-1 min-w-0">
|
||||
<el-tabs
|
||||
:model-value="currentTab"
|
||||
:closable="tabsLists.length > 1"
|
||||
@tab-change="handleChange"
|
||||
@tab-remove="removeTab($event)"
|
||||
>
|
||||
<template v-for="item in tabsLists" :key="item.fullPath">
|
||||
<el-tab-pane :label="item.title" :name="item.fullPath"></el-tab-pane>
|
||||
</template>
|
||||
</el-tabs>
|
||||
<div class="flex pl-4 app-tabs bg-body">
|
||||
<div class="flex-1 min-w-0 menu">
|
||||
<div
|
||||
v-for="(item,index) in tabsLists"
|
||||
class="tab-pan"
|
||||
:class="{act:(currentRoute==item.path)}"
|
||||
>
|
||||
<span v-show="currentRoute==item.path" class="dot"></span>
|
||||
<span @click="handleChanges(item.fullPath)">{{ item.title }}</span>
|
||||
<el-icon @click="delTab(item.fullPath)">
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
<el-dropdown @command="handleCommand">
|
||||
<span class="flex items-center px-3">
|
||||
<icon :size="16" name="el-icon-arrow-down" />
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="closeCurrent"> 关闭当前 </el-dropdown-item>
|
||||
<el-dropdown-item command="closeOther"> 关闭其他 </el-dropdown-item>
|
||||
<el-dropdown-item command="closeAll"> 关闭全部 </el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
<el-dropdown @command="handleCommand">
|
||||
<span class="flex items-center px-3">
|
||||
<icon :size="16" name="el-icon-arrow-down" />
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="closeCurrent">关闭当前</el-dropdown-item>
|
||||
<el-dropdown-item command="closeOther">关闭其他</el-dropdown-item>
|
||||
<el-dropdown-item command="closeAll">关闭全部</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import useMultipleTabs from '@/hooks/useMultipleTabs'
|
||||
import { useWatchRoute } from '@/hooks/useWatchRoute'
|
||||
import useTabsStore, { getRouteParams } from '@/stores/modules/multipleTabs'
|
||||
const router = useRouter()
|
||||
const tabsStore = useTabsStore()
|
||||
const { removeOtherTab, addTab, removeAllTab, removeTab, tabsLists, currentTab } = useMultipleTabs()
|
||||
useWatchRoute(() => {
|
||||
addTab()
|
||||
})
|
||||
|
||||
const handleChange = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath]
|
||||
router.push(getRouteParams(tabItem))
|
||||
}
|
||||
|
||||
const handleCommand = (command: any) => {
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import useMultipleTabs from "@/hooks/useMultipleTabs";
|
||||
import { useWatchRoute } from "@/hooks/useWatchRoute";
|
||||
import useTabsStore, { getRouteParams } from "@/stores/modules/multipleTabs";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const tabsStore = useTabsStore();
|
||||
const {
|
||||
removeOtherTab,
|
||||
addTab,
|
||||
removeAllTab,
|
||||
removeTab,
|
||||
tabsLists,
|
||||
currentTab,
|
||||
} = useMultipleTabs();
|
||||
useWatchRoute(() => {
|
||||
addTab();
|
||||
});
|
||||
|
||||
const handleChange = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath];
|
||||
router.push(getRouteParams(tabItem));
|
||||
console.log(tabsStore.tasMap[fullPath]);
|
||||
};
|
||||
const handleChanges = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath];
|
||||
router.push(getRouteParams(tabItem));
|
||||
};
|
||||
|
||||
const delTab = (fullPath, index) => {
|
||||
removeTab(fullPath);
|
||||
if (fullPath.includes(route.path)) {
|
||||
handleChanges(tabsLists.value[index].fullPath);
|
||||
}
|
||||
|
||||
};
|
||||
const currentRoute = ref("");
|
||||
watch(
|
||||
() => route.path,
|
||||
(newCount, oldCount) => {
|
||||
currentRoute.value = newCount;
|
||||
console.log(currentRoute);
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
deep: true,
|
||||
}
|
||||
);
|
||||
const handleCommand = (command: any) => {
|
||||
switch (command) {
|
||||
case 'closeCurrent':
|
||||
removeTab()
|
||||
break
|
||||
case 'closeOther':
|
||||
removeOtherTab()
|
||||
break
|
||||
case 'closeAll':
|
||||
removeAllTab()
|
||||
break
|
||||
case "closeCurrent":
|
||||
removeTab();
|
||||
break;
|
||||
case "closeOther":
|
||||
removeOtherTab();
|
||||
break;
|
||||
case "closeAll":
|
||||
removeAllTab();
|
||||
break;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.app-tabs {
|
||||
@apply border-t border-br;
|
||||
:deep(.el-tabs) {
|
||||
height: 40px;
|
||||
.el-tabs {
|
||||
&__header {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
&__content {
|
||||
display: none;
|
||||
}
|
||||
&__nav-next,
|
||||
&__nav-prev {
|
||||
@apply text-xl;
|
||||
}
|
||||
|
||||
&__nav-wrap::after {
|
||||
height: 0;
|
||||
}
|
||||
&__item {
|
||||
font-weight: normal;
|
||||
padding: 0 15px !important;
|
||||
box-sizing: border-box;
|
||||
&.is-active {
|
||||
background-color: var(--el-color-primary-light-9);
|
||||
&::before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background-color: var(--el-color-primary);
|
||||
margin-right: 6px;
|
||||
border-radius: 50%;
|
||||
vertical-align: 2px;
|
||||
}
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
display: block;
|
||||
top: 0;
|
||||
height: 2px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: var(--el-color-primary);
|
||||
}
|
||||
}
|
||||
.is-icon-close {
|
||||
color: var(--el-text-color-regular);
|
||||
vertical-align: -2px;
|
||||
&:hover {
|
||||
color: var(--color-white);
|
||||
background-color: var(--el-color-danger);
|
||||
}
|
||||
}
|
||||
}
|
||||
&__active-bar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.menu {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.tab-pan {
|
||||
padding: 5px 20px;
|
||||
cursor: pointer;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.act {
|
||||
background-color: #edefff;
|
||||
color: rgb(128, 142, 255);
|
||||
}
|
||||
.dot {
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background-color: #4a5dff;
|
||||
border-radius: 5px;
|
||||
margin-right: 5px;
|
||||
// font-size: 30px;
|
||||
}
|
||||
</style>
|
||||
|
0
src/views/Client/Contact/index.vue
Normal file
0
src/views/Client/Contact/index.vue
Normal file
300
src/views/Client/Tickets/index.vue
Normal file
300
src/views/Client/Tickets/index.vue
Normal file
@ -0,0 +1,300 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div class="tit">售后工单</div>
|
||||
<div style="display: flex;">
|
||||
<el-form-item label-width="0" prop="field101">
|
||||
<el-select v-model="formData.field101" placeholder="请选择下拉选择下拉选择" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field101Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label-width="0" prop="field102">
|
||||
<el-select v-model="formData.field102" placeholder="请选择下拉选择下拉选择" :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field102Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
|
||||
<el-card>
|
||||
<div style="width: 40vw;margin-bottom: 10px;height: 50px;overflow: hidden;">
|
||||
<el-steps :space="200" :active="1" simple>
|
||||
<el-step title="发起工单" />
|
||||
<el-step title="技术处理" />
|
||||
<el-step title="客服回访" />
|
||||
<el-step title="总经理审核" />
|
||||
</el-steps>
|
||||
|
||||
</div>
|
||||
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="请输入项目名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目编码" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入项目编码" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入客户名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同号" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="请输入合同号" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人" prop="field107">
|
||||
<el-input v-model="formData.field107" placeholder="请输入联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系电话" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="请输入联系电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="日期" prop="field110">
|
||||
<el-date-picker v-model="formData.field110" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="分类" prop="field112">
|
||||
<el-select v-model="formData.field112" placeholder="请选择分类" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field112Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="14">
|
||||
<el-form-item label="紧急程度" prop="field113">
|
||||
<el-radio-group v-model="formData.field113" size="medium">
|
||||
<el-radio v-for="(item, index) in field113Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="招待人" prop="field114">
|
||||
<el-input v-model="formData.field114" placeholder="请输入招待人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="指定处理人" prop="field115">
|
||||
<el-input v-model="formData.field115" placeholder="请输入指定处理人" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="投诉主题" prop="field116">
|
||||
<el-input v-model="formData.field116" placeholder="请输入投诉主题" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="问题描述" prop="field117">
|
||||
<el-input v-model="formData.field117" type="textarea" placeholder="请输入问题描述"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="field118">
|
||||
<el-input v-model="formData.field118" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field119">
|
||||
<el-upload ref="field119" :file-list="field119fileList" :action="field119Action"
|
||||
:before-upload="field119BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field110: null,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field115: undefined,
|
||||
field116: undefined,
|
||||
field117: undefined,
|
||||
field118: undefined,
|
||||
field119: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [],
|
||||
field102: [],
|
||||
field103: [],
|
||||
field104: [],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '请输入客户名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field106: [{
|
||||
required: true,
|
||||
message: '请输入合同号',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field107: [],
|
||||
field108: [],
|
||||
field110: [{
|
||||
required: true,
|
||||
message: '请选择日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field112: [{
|
||||
required: true,
|
||||
message: '请选择分类',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field113: [{
|
||||
required: true,
|
||||
message: '紧急程度不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field114: [{
|
||||
required: true,
|
||||
message: '请输入招待人',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field115: [{
|
||||
required: true,
|
||||
message: '请输入指定处理人',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field116: [{
|
||||
required: true,
|
||||
message: '请输入投诉主题',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field117: [],
|
||||
field118: [],
|
||||
},
|
||||
field119Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field119fileList: [],
|
||||
field101Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field102Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field112Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field113Options: [{
|
||||
"label": "普通",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "急",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "非常急",
|
||||
"value": 3
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field119BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.tit {
|
||||
font-size: 17px;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
139
src/views/Client/followRecord/index.vue
Normal file
139
src/views/Client/followRecord/index.vue
Normal file
@ -0,0 +1,139 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-form-item label="主题" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入主题" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="请输入本文行单客户名称" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="请输入本文行单联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="日期" prop="field107">
|
||||
<el-date-picker v-model="formData.field107" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="field108">
|
||||
<el-select v-model="formData.field108" placeholder="请选择类型" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field108Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="执行人" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入本文行单执行人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="行动描述" prop="field110">
|
||||
<el-input v-model="formData.field110" type="textarea" placeholder="请输入行动描述"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件/现场照片" prop="field111" label-width="120px">
|
||||
<el-upload ref="field111" :file-list="field111fileList" :action="field111Action"
|
||||
:before-upload="field111BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="位置" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="请输入位置" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="下次回访日期" prop="field113">
|
||||
<el-date-picker v-model="formData.field113" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择下次回访日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field107: null,
|
||||
field108: undefined,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: null,
|
||||
field112: undefined,
|
||||
field113: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入主题',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [],
|
||||
field103: [],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '请选择日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '请选择类型',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [],
|
||||
field110: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
},
|
||||
field111Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field111fileList: [],
|
||||
field108Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field111BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
368
src/views/Client/myClient/index.vue
Normal file
368
src/views/Client/myClient/index.vue
Normal file
@ -0,0 +1,368 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-row :gutter="10">
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
|
||||
<el-card>
|
||||
<div class="tit">客户基本资料</div>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户姓名" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入本文行单客户姓名" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="客户属性" prop="field103">
|
||||
<el-select v-model="formData.field103" placeholder="请选择客户属性" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field103Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="上级公司" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入上级公司" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="电话" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="信用度" prop="field106">
|
||||
<el-radio-group v-model="formData.field106" size="medium">
|
||||
<el-radio v-for="(item, index) in field106Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-form-item label="客户地址" prop="field107">
|
||||
<el-select v-model="formData.field107" placeholder="请选择客户地址" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field107Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="field108">
|
||||
<el-input v-model="formData.field108" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card>
|
||||
<div class="tit">主要负责人</div>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="姓名" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入姓名" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="职位" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入职位" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="手机" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="请输入手机" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="邮箱" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="请输入邮箱" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="电话" prop="field113">
|
||||
<el-input v-model="formData.field113" placeholder="请输入电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="备注" prop="field114">
|
||||
<el-input v-model="formData.field114" placeholder="请输入备注" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card>
|
||||
<div class="tit">其他联系人</div>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="姓名" prop="field116">
|
||||
<el-input v-model="formData.field116" placeholder="请输入姓名" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="职位" prop="field117">
|
||||
<el-input v-model="formData.field117" placeholder="请输入职位" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="手机" prop="field118">
|
||||
<el-input v-model="formData.field118" placeholder="请输入手机" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="电话" prop="field119">
|
||||
<el-input v-model="formData.field119" placeholder="请输入电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<el-form-item label="邮箱" prop="field120">
|
||||
<el-input v-model="formData.field120" placeholder="请输入邮箱" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="9">
|
||||
<el-form-item label="备注" prop="field121">
|
||||
<el-input v-model="formData.field121" placeholder="请输入备注" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="附件" prop="field122">
|
||||
<el-upload ref="field122" :file-list="field122fileList" :action="field122Action"
|
||||
:before-upload="field122BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-card>
|
||||
<div class="tit">开票信息</div>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="开票公司" prop="field123">
|
||||
<el-input v-model="formData.field123" placeholder="请输入开票公司" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="纳税人识别" prop="field124">
|
||||
<el-input v-model="formData.field124" placeholder="请输入纳税人识别" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="开户地址" prop="field125">
|
||||
<el-input v-model="formData.field125" placeholder="请输入开户地址" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="电话" prop="field126">
|
||||
<el-input v-model="formData.field126" placeholder="请输入电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="开户地址" prop="field127">
|
||||
<el-input v-model="formData.field127" placeholder="请输入开户地址" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="银行账号" prop="field128">
|
||||
<el-input v-model="formData.field128" placeholder="请输入银行账号" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field116: undefined,
|
||||
field117: undefined,
|
||||
field118: undefined,
|
||||
field119: undefined,
|
||||
field120: undefined,
|
||||
field121: undefined,
|
||||
field122: null,
|
||||
field123: undefined,
|
||||
field124: undefined,
|
||||
field125: undefined,
|
||||
field126: undefined,
|
||||
field127: undefined,
|
||||
field128: undefined,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入本文行单客户姓名',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [],
|
||||
field104: [],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '请输入电话',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field106: [],
|
||||
field107: [],
|
||||
field108: [],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '请输入姓名',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field110: [],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field116: [],
|
||||
field117: [],
|
||||
field118: [],
|
||||
field119: [],
|
||||
field120: [],
|
||||
field121: [],
|
||||
field123: [],
|
||||
field124: [],
|
||||
field125: [],
|
||||
field126: [],
|
||||
field127: [{
|
||||
required: true,
|
||||
message: '请输入开户地址',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field128: [],
|
||||
},
|
||||
field122Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field122fileList: [],
|
||||
field103Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field106Options: [{
|
||||
"label": "良好",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "一般",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "较差",
|
||||
"value": ""
|
||||
}],
|
||||
field107Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field122BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.tit {
|
||||
font-size: 17px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
|
174
src/views/business/Competitor.vue
Normal file
174
src/views/business/Competitor.vue
Normal file
@ -0,0 +1,174 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="130px" label-position="left">
|
||||
<el-form-item label="组织名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入组织名称" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="field104">
|
||||
<el-select v-model="formData.field104" placeholder="请选择部门名称" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field104Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="点教选择项目" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求名称" prop="field130">
|
||||
<el-input v-model="formData.field130" placeholder="点击选择目项点需求名称" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞争对手联系人" prop="field131" label-width="132px">
|
||||
<el-input v-model="formData.field131" placeholder="请输入竞争对手联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人电话" prop="field132">
|
||||
<el-input v-model="formData.field132" placeholder="请输入联系人电话" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞争能力" prop="field134">
|
||||
<el-input v-model="formData.field134" type="textarea" placeholder="请输入竞争能力"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞争能对手优势" prop="field135">
|
||||
<el-input v-model="formData.field135" type="textarea" placeholder="请输入竞争能对手优势"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞争能对手劣势" prop="field136">
|
||||
<el-input v-model="formData.field136" type="textarea" placeholder="请输入竞争能对手劣势"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="field137">
|
||||
<el-input v-model="formData.field137" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field138">
|
||||
<el-upload ref="field138" :file-list="field138fileList" :action="field138Action"
|
||||
:before-upload="field138BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field104: undefined,
|
||||
field109: undefined,
|
||||
field105: undefined,
|
||||
field108: undefined,
|
||||
field130: undefined,
|
||||
field131: undefined,
|
||||
field132: undefined,
|
||||
field134: undefined,
|
||||
field135: undefined,
|
||||
field136: undefined,
|
||||
field137: undefined,
|
||||
field138: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入组织名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请选择部门名称',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '点教选择项目',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field130: [{
|
||||
required: true,
|
||||
message: '教选择目项点需求名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field131: [{
|
||||
required: true,
|
||||
message: '请输入竞争对手联系人',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field132: [],
|
||||
field134: [],
|
||||
field135: [],
|
||||
field136: [],
|
||||
field137: [],
|
||||
},
|
||||
field138Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field138fileList: [],
|
||||
field104Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field138BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
178
src/views/business/cilentNeed.vue
Normal file
178
src/views/business/cilentNeed.vue
Normal file
@ -0,0 +1,178 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-form-item label="组织名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入组织名称" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="field104">
|
||||
<el-select v-model="formData.field104" placeholder="请选择部门名称" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field104Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="点教选择项目" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求主题" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入需求" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户需求提供人" prop="field111" label-width="120px">
|
||||
<el-input v-model="formData.field111" placeholder="请输入客户需求提供人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="提供联系人" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="请输入提供联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="重要程度" prop="field113">
|
||||
<el-radio-group v-model="formData.field113" size="medium">
|
||||
<el-radio v-for="(item, index) in field113Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="记录时间" prop="field114">
|
||||
<el-date-picker v-model="formData.field114" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择记录时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求内容" prop="field115">
|
||||
<el-input v-model="formData.field115" type="textarea" placeholder="请输入需求内容"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field116">
|
||||
<el-upload ref="field116" :file-list="field116fileList" :action="field116Action"
|
||||
:before-upload="field116BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field104: undefined,
|
||||
field109: undefined,
|
||||
field108: undefined,
|
||||
field105: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: null,
|
||||
field115: undefined,
|
||||
field116: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入组织名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请选择部门名称',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '点教选择项目',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field110: [{
|
||||
required: true,
|
||||
message: '请输入需求',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field115: [],
|
||||
},
|
||||
field116Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field116fileList: [],
|
||||
field104Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field113Options: [{
|
||||
"label": "非常重要",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "重要",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "一般",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "不重要",
|
||||
"value": 4
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field116BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
257
src/views/business/followProject.vue
Normal file
257
src/views/business/followProject.vue
Normal file
@ -0,0 +1,257 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="点击选择" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目编码" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="执行人" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入执行人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系方式" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="请输入联系方式" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目角色" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="请输入项目角色" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="职位" prop="field107">
|
||||
<el-input v-model="formData.field107" placeholder="请输入职位" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="日期" prop="field109">
|
||||
<el-date-picker v-model="formData.field109" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="类型" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入类型" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="主题" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="请输入主题" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="行动描述" prop="field113">
|
||||
<el-input v-model="formData.field113" type="textarea" placeholder="请输入行动描述"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目把握度" prop="field114">
|
||||
<el-select v-model="formData.field114" placeholder="请选择项目把握度" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field114Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="状态" prop="field116">
|
||||
<el-select v-model="formData.field116" placeholder="请选择状态" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field116Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="阶段" prop="field117">
|
||||
<el-input v-model="formData.field117" placeholder="请输入阶段" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="备注" prop="field118">
|
||||
<el-input v-model="formData.field118" placeholder="请输入备注" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="下次回访日期" prop="field119">
|
||||
<el-date-picker v-model="formData.field119" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择下次回访日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="附件" prop="field120">
|
||||
<el-upload ref="field120" :file-list="field120fileList" :action="field120Action"
|
||||
:before-upload="field120BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field108: undefined,
|
||||
field107: undefined,
|
||||
field109: null,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field116: undefined,
|
||||
field117: undefined,
|
||||
field118: undefined,
|
||||
field119: null,
|
||||
field120: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '点击选择',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [],
|
||||
field105: [],
|
||||
field106: [],
|
||||
field108: [],
|
||||
field107: [],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '请选择日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field110: [{
|
||||
required: true,
|
||||
message: '请输入类型',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field111: [{
|
||||
required: true,
|
||||
message: '请输入主题',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field113: [],
|
||||
field114: [{
|
||||
required: true,
|
||||
message: '请选择项目把握度',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field116: [],
|
||||
field117: [],
|
||||
field118: [],
|
||||
field119: [],
|
||||
},
|
||||
field120Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field120fileList: [],
|
||||
field114Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field116Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field120BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
469
src/views/business/proApproved.vue
Normal file
469
src/views/business/proApproved.vue
Normal file
@ -0,0 +1,469 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入客户名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目类型" prop="field103">
|
||||
<el-select v-model="formData.field103" placeholder="请选择项目类型" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field103Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入项目名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单行文本" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动生成" readonly clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="项目内容" prop="field106">
|
||||
<el-checkbox-group v-model="formData.field106" size="medium">
|
||||
<el-checkbox v-for="(item, index) in field106Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目估算(万元)" prop="field107" label-width="120px">
|
||||
<el-input v-model="formData.field107" placeholder="请输入项目估算项目估算(万元)" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目估算(外币)" prop="field108" label-width="120px">
|
||||
<el-input v-model="formData.field108" placeholder="请输入项目估算(外币)" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目所在地" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入项目所在地" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="预计工期" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入预计工期" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="投标时间" prop="field111">
|
||||
<el-date-picker v-model="formData.field111" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择投标时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="招聘方式" prop="field112">
|
||||
<el-radio-group v-model="formData.field112" size="medium">
|
||||
<el-radio v-for="(item, index) in field112Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人" prop="field113">
|
||||
<el-input v-model="formData.field113" placeholder="请输入联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人职位" prop="field114">
|
||||
<el-input v-model="formData.field114" placeholder="请输入联系人职位" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系电话" prop="field115">
|
||||
<el-input v-model="formData.field115" placeholder="请输入联系电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人部门" prop="field116">
|
||||
<el-input v-model="formData.field116" placeholder="请输入联系人部门" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="负责人" prop="field117">
|
||||
<el-input v-model="formData.field117" placeholder="请输入负责人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="关系度" prop="field118">
|
||||
<el-radio-group v-model="formData.field118" size="medium">
|
||||
<el-radio v-for="(item, index) in field118Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="发现时间" prop="field119">
|
||||
<el-date-picker v-model="formData.field119" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择发现时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="信息来源" prop="field120">
|
||||
<el-input v-model="formData.field120" placeholder="请输入信息来源" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="竞争对手" prop="field121">
|
||||
<el-input v-model="formData.field121" placeholder="请输入竞争对手" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目建设资金来源" prop="field122" label-width="136px">
|
||||
<el-radio-group v-model="formData.field122" size="medium">
|
||||
<el-radio v-for="(item, index) in field122Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="建设方付款方式" prop="field123" label-width="120px">
|
||||
<el-input v-model="formData.field123" placeholder="请输入建设方付款方式" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="建设方财务状况" prop="field124" label-width="136px">
|
||||
<el-radio-group v-model="formData.field124" size="medium">
|
||||
<el-radio v-for="(item, index) in field124Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="战略意义" prop="field125">
|
||||
<el-radio-group v-model="formData.field125" size="medium">
|
||||
<el-radio v-for="(item, index) in field125Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="单位性质" prop="field126">
|
||||
<el-radio-group v-model="formData.field126" size="medium">
|
||||
<el-radio v-for="(item, index) in field126Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="所属行业" prop="field127">
|
||||
<el-radio-group v-model="formData.field127" size="medium">
|
||||
<el-radio v-for="(item, index) in field127Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field128">
|
||||
<el-upload ref="field128" :file-list="field128fileList" :action="field128Action"
|
||||
:before-upload="field128BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: [],
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: null,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field115: undefined,
|
||||
field116: undefined,
|
||||
field117: undefined,
|
||||
field118: undefined,
|
||||
field119: null,
|
||||
field120: undefined,
|
||||
field121: undefined,
|
||||
field122: undefined,
|
||||
field123: undefined,
|
||||
field124: undefined,
|
||||
field125: undefined,
|
||||
field126: undefined,
|
||||
field127: 5,
|
||||
field128: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入客户名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '请选择项目类型',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请输入项目名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [],
|
||||
field106: [{
|
||||
required: true,
|
||||
type: 'array',
|
||||
message: '请至少选择一个项目内容',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field107: [],
|
||||
field108: [],
|
||||
field109: [],
|
||||
field110: [],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field115: [],
|
||||
field116: [],
|
||||
field117: [],
|
||||
field118: [],
|
||||
field119: [{
|
||||
required: true,
|
||||
message: '请选择发现时间',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field120: [{
|
||||
required: true,
|
||||
message: '请输入信息来源',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field121: [],
|
||||
field122: [],
|
||||
field123: [],
|
||||
field124: [],
|
||||
field125: [],
|
||||
field126: [],
|
||||
field127: [],
|
||||
},
|
||||
field128Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field128fileList: [],
|
||||
field103Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field106Options: [{
|
||||
"label": "备品备件",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "硬件成套",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "编程测试",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "系统升级",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "安装施工",
|
||||
"value": 5
|
||||
}, {
|
||||
"label": "系统开发",
|
||||
"value": 6
|
||||
}, {
|
||||
"label": "现场服务",
|
||||
"value": 7
|
||||
}, {
|
||||
"label": "基建技改",
|
||||
"value": 8
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 9
|
||||
}],
|
||||
field112Options: [{
|
||||
"label": "公开招标",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "邀标",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "议标",
|
||||
"value": 3
|
||||
}],
|
||||
field118Options: [{
|
||||
"label": "不认识",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "初始",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "普通",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "要好",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "密切",
|
||||
"value": 5
|
||||
}],
|
||||
field122Options: [{
|
||||
"label": "自筹",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "财政拨款",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "政府补贴",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 4
|
||||
}],
|
||||
field124Options: [{
|
||||
"label": "优",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "良好",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "不还",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "未知",
|
||||
"value": 4
|
||||
}],
|
||||
field125Options: [{
|
||||
"label": "持续合作",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "潜力",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "样板示范",
|
||||
"value": 3
|
||||
}],
|
||||
field126Options: [{
|
||||
"label": "国有企业",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "政府",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "部队",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "集体企业",
|
||||
"value": ""
|
||||
}],
|
||||
field127Options: [{
|
||||
"label": "钢铁",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "光伏",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "石化",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "电力",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "有色",
|
||||
"value": 5
|
||||
}, {
|
||||
"label": "食品医疗",
|
||||
"value": 6
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 7
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field128BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
159
src/views/business/solution.vue
Normal file
159
src/views/business/solution.vue
Normal file
@ -0,0 +1,159 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-form-item label="组织名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入组织名称" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="field104">
|
||||
<el-select v-model="formData.field104" placeholder="请选择部门名称" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field104Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="点教选择项目" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求名称" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="点击选择项目需求" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="解决方案主题" prop="field111" label-width="120px">
|
||||
<el-input v-model="formData.field111" placeholder="请输入解决方案主题" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="提交时间" prop="field114">
|
||||
<el-date-picker v-model="formData.field114" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择提交时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="方案内容" prop="field117">
|
||||
<el-input v-model="formData.field117" type="textarea" placeholder="请输入方案内容"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户反馈" prop="field115">
|
||||
<el-input v-model="formData.field115" type="textarea" placeholder="请输入客户反馈"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field116">
|
||||
<el-upload ref="field116" :file-list="field116fileList" :action="field116Action"
|
||||
:before-upload="field116BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field104: undefined,
|
||||
field109: undefined,
|
||||
field105: undefined,
|
||||
field108: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field114: null,
|
||||
field117: undefined,
|
||||
field115: undefined,
|
||||
field116: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入组织名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请选择部门名称',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '点教选择项目',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field110: [],
|
||||
field111: [{
|
||||
required: true,
|
||||
message: '请输入解决方案主题',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field114: [],
|
||||
field117: [],
|
||||
field115: [],
|
||||
},
|
||||
field116Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field116fileList: [],
|
||||
field104Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field116BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
0
src/views/construction/index.vue
Normal file
0
src/views/construction/index.vue
Normal file
323
src/views/contract/ProjectContracts/ContractGovernance.vue
Normal file
323
src/views/contract/ProjectContracts/ContractGovernance.vue
Normal file
@ -0,0 +1,323 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="120px" label-position="left">
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="点击选择合同" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同编号" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="点击选择合同编号" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="点击选择项目名称" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="系统自动填写" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同类型" prop="field107">
|
||||
<el-select v-model="formData.field107" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field107Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同计价方式" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动获取" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="签约日期" prop="field106">
|
||||
<el-date-picker v-model="formData.field106" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请输入签约日期" clearable
|
||||
:disabled='true'></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="业务负责人" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="点击选择" :disabled='true' clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="治商单位名称" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入治商单位名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="治商编号" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="治商金额" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="请输入治商金额" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="治商类别" prop="field135">
|
||||
<el-radio-group v-model="formData.field135" size="medium">
|
||||
<el-radio v-for="(item, index) in field135Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成本金额(人工)" prop="field136">
|
||||
<el-input v-model="formData.field136" placeholder="请输入成本金额(人工)" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成本金额(材料)" prop="field137">
|
||||
<el-input v-model="formData.field137" placeholder="请输入成本金额(材料)" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="治商质保金额" prop="field138">
|
||||
<el-input v-model="formData.field138" placeholder="请输入治商质保金额" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="治商质保到期时间" prop="field139" label-width="130px">
|
||||
<el-input v-model="formData.field139" placeholder="请输入治商质保到期时间" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="利润" prop="field140">
|
||||
<el-input v-model="formData.field140" placeholder="请输入利润" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="利润率" prop="field141">
|
||||
<el-input v-model="formData.field141" placeholder="请输入利润率" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="治商内容" prop="field142">
|
||||
<el-input v-model="formData.field142" type="textarea" placeholder="请输入治商内容"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="具体说明" prop="field143">
|
||||
<el-input v-model="formData.field143" type="textarea" placeholder="请输入具体说明"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="签证报价表" prop="field144">
|
||||
<el-upload ref="field144" :file-list="field144fileList" :action="field144Action"
|
||||
:before-upload="field144BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="治商依据" prop="field145">
|
||||
<el-upload ref="field145" :file-list="field145fileList" :action="field145Action"
|
||||
:before-upload="field145BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field107: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field108: undefined,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field135: 1,
|
||||
field136: undefined,
|
||||
field137: undefined,
|
||||
field138: undefined,
|
||||
field139: undefined,
|
||||
field140: undefined,
|
||||
field141: undefined,
|
||||
field142: undefined,
|
||||
field143: undefined,
|
||||
field144: null,
|
||||
field145: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '点击选择合同',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '点击选择合同编号',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '点击选择项目名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field106: [{
|
||||
required: true,
|
||||
message: '请输入签约日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '点击选择',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '请输入治商单位名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field110: [],
|
||||
field111: [{
|
||||
required: true,
|
||||
message: '请输入治商金额',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field135: [],
|
||||
field136: [],
|
||||
field137: [],
|
||||
field138: [],
|
||||
field139: [],
|
||||
field140: [],
|
||||
field141: [],
|
||||
field142: [],
|
||||
field143: [],
|
||||
},
|
||||
field144Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field144fileList: [],
|
||||
field145Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field145fileList: [],
|
||||
field107Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field108Options: [{
|
||||
"label": "总价合同",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "清单计价",
|
||||
"value": 2
|
||||
}],
|
||||
field135Options: [{
|
||||
"label": "设计变更",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "现场变更",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "补充协议",
|
||||
"value": 3
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field144BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
field145BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}</style>
|
||||
|
377
src/views/contract/ProjectContracts/ProjectContracts.vue
Normal file
377
src/views/contract/ProjectContracts/ProjectContracts.vue
Normal file
@ -0,0 +1,377 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="点击选择客户" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="投标编号" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="点击选择投标编号" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="点击选择项目名称" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目编码" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="系统自动获取" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同名称" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入合同名称" clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同编号" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="请输入合同编号" clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同类型" prop="field107">
|
||||
<el-select v-model="formData.field107" placeholder="请选择合同类型" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field107Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同计价方式" prop="field108" label-width="115px">
|
||||
<el-radio-group v-model="formData.field108" size="medium">
|
||||
<el-radio v-for="(item, index) in field108Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="甲方" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入甲方" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="乙方" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入乙方" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="通讯地址" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="请输入通讯地址" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="通讯地址" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="请输入通讯地址" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="主要负责人" prop="field113">
|
||||
<el-input v-model="formData.field113" placeholder="请输入主要负责人" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="主要负责人" prop="field114">
|
||||
<el-input v-model="formData.field114" placeholder="请输入主要负责人" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="电话" prop="field115">
|
||||
<el-input v-model="formData.field115" placeholder="请输入电话" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="电话" prop="field116">
|
||||
<el-input v-model="formData.field116" placeholder="请输入电话" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="手机" prop="field117">
|
||||
<el-input v-model="formData.field117" placeholder="请输入手机" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="手机" prop="field118">
|
||||
<el-input v-model="formData.field118" placeholder="请输入手机" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邮箱" prop="field119">
|
||||
<el-input v-model="formData.field119" placeholder="请输入邮箱" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邮箱" prop="field120">
|
||||
<el-input v-model="formData.field120" placeholder="请输入邮箱" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="金额" prop="field121">
|
||||
<el-input v-model="formData.field121" placeholder="请输入金额" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="金额大写" prop="field122">
|
||||
<el-input v-model="formData.field122" placeholder="请输入金额大写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="业务负责人" prop="field123">
|
||||
<el-input v-model="formData.field123" placeholder="点击选择业务负责人" :disabled='true' clearable
|
||||
suffix-icon='el-icon-search' :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="状态" prop="field124">
|
||||
<el-radio-group v-model="formData.field124" size="medium">
|
||||
<el-radio v-for="(item, index) in field124Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同有效期" prop="field125">
|
||||
<el-date-picker v-model="formData.field125" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择合同有效期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="签约日期" prop="field126">
|
||||
<el-date-picker v-model="formData.field126" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择签约日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="主要条款" prop="field127">
|
||||
<el-input v-model="formData.field127" type="textarea" placeholder="请输入主要条款"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="field128">
|
||||
<el-input v-model="formData.field128" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field129">
|
||||
<el-upload ref="field129" :file-list="field129fileList" :action="field129Action"
|
||||
:before-upload="field129BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field115: undefined,
|
||||
field116: undefined,
|
||||
field117: undefined,
|
||||
field118: undefined,
|
||||
field119: undefined,
|
||||
field120: undefined,
|
||||
field121: undefined,
|
||||
field122: undefined,
|
||||
field123: undefined,
|
||||
field124: undefined,
|
||||
field125: null,
|
||||
field126: null,
|
||||
field127: undefined,
|
||||
field128: undefined,
|
||||
field129: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '点击选择客户',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '点击选择投标编号',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '点击选择项目名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '请输入合同名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field106: [{
|
||||
required: true,
|
||||
message: '请输入合同编号',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '请选择合同类型',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '合同计价方式不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [],
|
||||
field110: [],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field115: [],
|
||||
field116: [],
|
||||
field117: [],
|
||||
field118: [],
|
||||
field119: [],
|
||||
field120: [],
|
||||
field121: [{
|
||||
required: true,
|
||||
message: '请输入金额',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field122: [],
|
||||
field123: [{
|
||||
required: true,
|
||||
message: '点击选择业务负责人',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field124: [],
|
||||
field125: [],
|
||||
field126: [{
|
||||
required: true,
|
||||
message: '请选择签约日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field127: [],
|
||||
field128: [],
|
||||
},
|
||||
field129Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field129fileList: [],
|
||||
field107Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field108Options: [{
|
||||
"label": "总价合同",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "清单计价",
|
||||
"value": 2
|
||||
}],
|
||||
field124Options: [{
|
||||
"label": "执行中",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "结束`",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "意外终止",
|
||||
"value": 3
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field129BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
277
src/views/contract/PurchaseContracts/ProcurementChanges.vue
Normal file
277
src/views/contract/PurchaseContracts/ProcurementChanges.vue
Normal file
@ -0,0 +1,277 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="120px" label-position="left">
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同编号" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="点击选择合同编号" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="供应商合同号" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="点击选择供应商合同号" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="供应商名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="供应商编码" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目编码" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同类型" prop="field107">
|
||||
<el-radio-group v-model="formData.field107" size="medium">
|
||||
<el-radio v-for="(item, index) in field107Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="签订日期" prop="field108">
|
||||
<el-date-picker v-model="formData.field108" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择签订日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="付款方式" prop="field109">
|
||||
<el-radio-group v-model="formData.field109" size="medium">
|
||||
<el-radio v-for="(item, index) in field109Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="账期" prop="field110">
|
||||
<el-radio-group v-model="formData.field110" size="medium">
|
||||
<el-radio v-for="(item, index) in field110Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同金额" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="不含税金额" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="系统自动计算" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="金额大写" prop="field113">
|
||||
<el-input v-model="formData.field113" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="质保金比例(%)" prop="field114">
|
||||
<el-input v-model="formData.field114" placeholder="请输入质保金比例(%)" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="质保金" prop="field115">
|
||||
<el-input v-model="formData.field115" placeholder="系统自动计算" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="field116">
|
||||
<el-input v-model="formData.field116" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field117">
|
||||
<el-upload ref="field117" :file-list="field117fileList" :action="field117Action"
|
||||
:before-upload="field117BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: null,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field115: undefined,
|
||||
field116: undefined,
|
||||
field117: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [],
|
||||
field102: [],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [],
|
||||
field106: [],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '合同类型不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '请选择签订日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [],
|
||||
field110: [{
|
||||
required: true,
|
||||
message: '账期不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field114: [{
|
||||
required: true,
|
||||
message: '请输入质保金比例(%)',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field115: [{
|
||||
required: true,
|
||||
message: '系统自动计算',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field116: [],
|
||||
},
|
||||
field117Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field117fileList: [],
|
||||
field107Options: [{
|
||||
"label": "材料设备",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "施工",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "委外",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "机具",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 5
|
||||
}],
|
||||
field109Options: [{
|
||||
"label": "承兑",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "电汇",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "支票",
|
||||
"value": 3
|
||||
}],
|
||||
field110Options: [{
|
||||
"label": "现结",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "月结",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "季度结",
|
||||
"value": 3
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field117BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
275
src/views/contract/PurchaseContracts/PurchaseContracts.vue
Normal file
275
src/views/contract/PurchaseContracts/PurchaseContracts.vue
Normal file
@ -0,0 +1,275 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="120px" label-position="left">
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="供应商名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="点击选择供应商" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="供应商编码" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="请输入项目名称" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目编码" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入项目编码" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同编号" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="供应商合同号" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="请输入供应商合同号" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同类型" prop="field107">
|
||||
<el-radio-group v-model="formData.field107" size="medium">
|
||||
<el-radio v-for="(item, index) in field107Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="签订日期" prop="field108">
|
||||
<el-date-picker v-model="formData.field108" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择签订日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="付款方式" prop="field109">
|
||||
<el-radio-group v-model="formData.field109" size="medium">
|
||||
<el-radio v-for="(item, index) in field109Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="账期" prop="field110">
|
||||
<el-radio-group v-model="formData.field110" size="medium">
|
||||
<el-radio v-for="(item, index) in field110Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同金额" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="系统自动获取合同金额" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="不含税金额" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="系统自动计算" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="金额大写" prop="field113">
|
||||
<el-input v-model="formData.field113" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="质保金比例(%)" prop="field114">
|
||||
<el-input v-model="formData.field114" placeholder="请输入质保金" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="质保金" prop="field115">
|
||||
<el-input v-model="formData.field115" placeholder="系统自动计算" :disabled='true' clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="field116">
|
||||
<el-input v-model="formData.field116" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field117">
|
||||
<el-upload ref="field117" :file-list="field117fileList" :action="field117Action"
|
||||
:before-upload="field117BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: null,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field115: undefined,
|
||||
field116: undefined,
|
||||
field117: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '点击选择供应商',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [],
|
||||
field104: [],
|
||||
field105: [],
|
||||
field106: [],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '合同类型不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '请选择签订日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [],
|
||||
field110: [{
|
||||
required: true,
|
||||
message: '账期不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [{
|
||||
required: true,
|
||||
message: '系统自动获取质保金比例',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field115: [{
|
||||
required: true,
|
||||
message: '系统自动计算',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field116: [],
|
||||
},
|
||||
field117Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field117fileList: [],
|
||||
field107Options: [{
|
||||
"label": "材料设备",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "施工",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "委外",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "机具",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 5
|
||||
}],
|
||||
field109Options: [{
|
||||
"label": "承兑",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "电汇",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "支票",
|
||||
"value": 3
|
||||
}],
|
||||
field110Options: [{
|
||||
"label": "现结",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "月结",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "季度结",
|
||||
"value": 3
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field117BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
@ -58,11 +58,13 @@ const checkStrictly = ref(true)
|
||||
const loading = ref(false)
|
||||
const menuArray = ref<any[]>([])
|
||||
const menuTree = ref<any[]>([])
|
||||
const topArr=reactive([])
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
name: '',
|
||||
desc: '',
|
||||
sort: 0,
|
||||
top_arr:[],
|
||||
menu_id: [] as any[]
|
||||
})
|
||||
|
||||
@ -75,10 +77,14 @@ const rules = {
|
||||
}
|
||||
]
|
||||
}
|
||||
// 5,174,173
|
||||
|
||||
const getOptions = () => {
|
||||
loading.value = true
|
||||
menuAll().then((res: any) => {
|
||||
res.forEach(item => {
|
||||
topArr.push(item.id)
|
||||
});
|
||||
menuTree.value = res
|
||||
menuArray.value = treeToArray(res)
|
||||
nextTick(() => {
|
||||
@ -121,8 +127,16 @@ const handleSelectAll = (check: CheckboxValueType) => {
|
||||
}
|
||||
|
||||
const handleSubmit = async () => {
|
||||
formData.top_arr.splice(0,formData.top_arr.length)
|
||||
await formRef.value?.validate()
|
||||
formData.menu_id = getDeptAllCheckedKeys()!
|
||||
|
||||
|
||||
formData.menu_id.forEach(item=>{
|
||||
if(topArr.includes(item)){
|
||||
formData.top_arr.push(item)
|
||||
}
|
||||
})
|
||||
await roleEdit(formData)
|
||||
popupRef.value?.close()
|
||||
emit('success')
|
||||
|
@ -90,6 +90,7 @@ const handleEdit = async (data: any) => {
|
||||
}
|
||||
|
||||
const handleAuth = async (data: any) => {
|
||||
console.log(data)
|
||||
showAuth.value = true
|
||||
await nextTick()
|
||||
authRef.value?.open()
|
||||
|
261
src/views/quote/quotation.vue
Normal file
261
src/views/quote/quotation.vue
Normal file
@ -0,0 +1,261 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-card>
|
||||
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入客户名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="报价日期" prop="field102">
|
||||
<el-date-picker v-model="formData.field102" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择报价日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="请输入联系人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系人电话" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入联系人电话" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="制单人" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入制单人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="发票类型" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="请输入发票类型" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="含税金额" prop="field107">
|
||||
<el-input v-model="formData.field107" placeholder="请系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="含税金额大写" prop="field108" label-width="120px">
|
||||
<el-input v-model="formData.field108" placeholder="请系统自动合计含税金额大写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="运费" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入运费" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="其他费用" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入其他费用" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合计金额" prop="field111">
|
||||
<el-input v-model="formData.field111" placeholder="系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合计金额大写" prop="field112" label-width="120px">
|
||||
<el-input v-model="formData.field112" placeholder="系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="客户需求" prop="field113">
|
||||
<el-input v-model="formData.field113" type="textarea" placeholder="请输入客户需求"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="field114">
|
||||
<el-input v-model="formData.field114" type="textarea" placeholder="请输入备注"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field115">
|
||||
<el-upload ref="field115" :file-list="field115fileList" :action="field115Action"
|
||||
:before-upload="field115BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="产品名称" prop="field116">
|
||||
<el-input v-model="formData.field116" placeholder="系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="产品编码" prop="field117">
|
||||
<el-input v-model="formData.field117" placeholder="系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="规格型号" prop="field119">
|
||||
<el-input v-model="formData.field119" placeholder="系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="品牌" prop="field118">
|
||||
<el-input v-model="formData.field118" placeholder="系统自动合计" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="参数说明" prop="field120">
|
||||
<el-input v-model="formData.field120" type="textarea" placeholder="请输入参数说明"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: null,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field109: 0,
|
||||
field110: "",
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: undefined,
|
||||
field114: undefined,
|
||||
field115: null,
|
||||
field116: undefined,
|
||||
field117: undefined,
|
||||
field119: undefined,
|
||||
field118: undefined,
|
||||
field120: undefined,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入客户名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '请选择报价日期',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field103: [],
|
||||
field104: [],
|
||||
field105: [],
|
||||
field106: [],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '请系统自动合计',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '请系统自动合计含税金额大写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '请输入运费',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field110: [{
|
||||
required: true,
|
||||
message: '请输入其他费用',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field111: [{
|
||||
required: true,
|
||||
message: '系统自动合计',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field112: [{
|
||||
required: true,
|
||||
message: '系统自动合计',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field116: [],
|
||||
field117: [],
|
||||
field119: [],
|
||||
field118: [],
|
||||
field120: [],
|
||||
},
|
||||
field115Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field115fileList: [],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field115BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
265
src/views/tender/Biddingdecision.vue
Normal file
265
src/views/tender/Biddingdecision.vue
Normal file
@ -0,0 +1,265 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="130px" label-position="left">
|
||||
<el-form-item label="项目名称" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="点击选择项目" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目估算(万)" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入项目估算" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标项目资金来源" prop="field105">
|
||||
<el-radio-group v-model="formData.field105" size="medium">
|
||||
<el-radio v-for="(item, index) in field105Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标时间" prop="field107">
|
||||
<el-date-picker v-model="formData.field107" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择投标时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="购买标书时间" prop="field108">
|
||||
<el-date-picker v-model="formData.field108" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择购买标书时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标方式" prop="field109">
|
||||
<el-radio-group v-model="formData.field109" size="medium">
|
||||
<el-radio v-for="(item, index) in field109Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="竞争对手" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入竞争对手" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否需要保证金" prop="field111">
|
||||
<el-radio-group v-model="formData.field111" size="medium">
|
||||
<el-radio v-for="(item, index) in field111Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="保证金金额(元)" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="请输入保证金金额(元)" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="开标日期" prop="field113">
|
||||
<el-date-picker v-model="formData.field113" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择开标日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="保证金退还时间" prop="field114">
|
||||
<el-date-picker v-model="formData.field114" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择保证金退还时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="有无内部资源" prop="field115">
|
||||
<el-radio-group v-model="formData.field115" size="medium">
|
||||
<el-radio v-for="(item, index) in field115Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目把握度" prop="field117">
|
||||
<el-select v-model="formData.field117" placeholder="项目把握度" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field117Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标项目概况" prop="field118">
|
||||
<el-input v-model="formData.field118" type="textarea" placeholder="请输入招标项目概况"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目简介" prop="field119">
|
||||
<el-input v-model="formData.field119" type="textarea" placeholder="项目简介"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field120">
|
||||
<el-upload ref="field120" :file-list="field120fileList" :action="field120Action"
|
||||
:before-upload="field120BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field102: undefined,
|
||||
field101: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field107: null,
|
||||
field108: null,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: undefined,
|
||||
field113: null,
|
||||
field114: null,
|
||||
field115: undefined,
|
||||
field117: undefined,
|
||||
field118: undefined,
|
||||
field119: undefined,
|
||||
field120: null,
|
||||
},
|
||||
rules: {
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '点击选择项目',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请输入项目估算',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [],
|
||||
field107: [],
|
||||
field108: [],
|
||||
field109: [],
|
||||
field110: [],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field115: [],
|
||||
field117: [],
|
||||
field118: [],
|
||||
field119: [],
|
||||
},
|
||||
field120Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field120fileList: [],
|
||||
field105Options: [{
|
||||
"label": "自筹",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "财政拨款",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "政府补贴",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 4
|
||||
}],
|
||||
field109Options: [{
|
||||
"label": "公开招标",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "邀标",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "议标",
|
||||
"value": 3
|
||||
}],
|
||||
field111Options: [{
|
||||
"label": "是",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "否",
|
||||
"value": 2
|
||||
}],
|
||||
field115Options: [{
|
||||
"label": "有",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "无",
|
||||
"value": 2
|
||||
}],
|
||||
field117Options: [{
|
||||
"label": "0%",
|
||||
"value": 0
|
||||
}, {
|
||||
"label": "10%",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "20%",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "30%",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "40%",
|
||||
"value": 4
|
||||
}, {
|
||||
"label": "50%",
|
||||
"value": 5
|
||||
}, {
|
||||
"label": "60%",
|
||||
"value": 6
|
||||
}, {
|
||||
"label": "70%",
|
||||
"value": 7
|
||||
}, {
|
||||
"label": "80%",
|
||||
"value": 8
|
||||
}, {
|
||||
"label": "90%",
|
||||
"value": 19
|
||||
}, {
|
||||
"label": "100%",
|
||||
"value": 10
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field120BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
226
src/views/tender/Purchaseenders.vue
Normal file
226
src/views/tender/Purchaseenders.vue
Normal file
@ -0,0 +1,226 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="130px" label-position="left">
|
||||
<el-form-item label="项目名称" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="点击选择项目" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="系统自动填写" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标公司名称" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入算估目项招标公司名称" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标公司名称" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入投标公司名称" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="购买人员" prop="field107">
|
||||
<el-input v-model="formData.field107" placeholder="请选择购买人员" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="购买标书金额(元)" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="请选择购买标书金额(元)" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标项目资金来源" prop="field109">
|
||||
<el-radio-group v-model="formData.field109" size="medium">
|
||||
<el-radio v-for="(item, index) in field109Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标时间" prop="field113">
|
||||
<el-date-picker v-model="formData.field113" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择投标时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="购买标书时间" prop="field114">
|
||||
<el-date-picker v-model="formData.field114" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择购买标书时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标方式" prop="field111">
|
||||
<el-radio-group v-model="formData.field111" size="medium">
|
||||
<el-radio v-for="(item, index) in field111Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标地址" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入投标地址" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否需要保证金" prop="field115">
|
||||
<el-radio-group v-model="formData.field115" size="medium">
|
||||
<el-radio v-for="(item, index) in field115Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="保证金金额(元)" prop="field112">
|
||||
<el-input v-model="formData.field112" placeholder="请输入保证金金额(元)" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="招标项目概况" prop="field118">
|
||||
<el-input v-model="formData.field118" type="textarea" placeholder="请输入招标项目概况"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目简介" prop="field119">
|
||||
<el-input v-model="formData.field119" type="textarea" placeholder="项目简介"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field120">
|
||||
<el-upload ref="field120" :file-list="field120fileList" :action="field120Action"
|
||||
:before-upload="field120BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field102: undefined,
|
||||
field101: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field107: null,
|
||||
field108: "",
|
||||
field109: undefined,
|
||||
field113: null,
|
||||
field114: null,
|
||||
field111: undefined,
|
||||
field110: undefined,
|
||||
field115: undefined,
|
||||
field112: undefined,
|
||||
field118: undefined,
|
||||
field119: undefined,
|
||||
field120: null,
|
||||
},
|
||||
rules: {
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '点击选择项目',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '系统自动填写',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请输入算估目项招标公司名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [],
|
||||
field107: [],
|
||||
field108: [],
|
||||
field109: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field111: [],
|
||||
field110: [],
|
||||
field115: [],
|
||||
field112: [],
|
||||
field118: [],
|
||||
field119: [],
|
||||
},
|
||||
field120Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field120fileList: [],
|
||||
field105Options: [{
|
||||
"label": "自筹",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "财政拨款",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "政府补贴",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 4
|
||||
}],
|
||||
field109Options: [{
|
||||
"label": "自筹",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "财政拨款",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "政府补贴",
|
||||
"value": 3
|
||||
}, {
|
||||
"label": "其他",
|
||||
"value": 4
|
||||
}],
|
||||
field111Options: [{
|
||||
"label": "公开招标",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "邀标",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "议标",
|
||||
"value": 3
|
||||
}],
|
||||
field115Options: [{
|
||||
"label": "是",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "否",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field120BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
166
src/views/tender/biddingResults.vue
Normal file
166
src/views/tender/biddingResults.vue
Normal file
@ -0,0 +1,166 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-form-item label="投标标号" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="点继续选择" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标时间" prop="field105">
|
||||
<el-date-picker v-model="formData.field105" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择投标时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="开标时间" prop="field106">
|
||||
<el-date-picker v-model="formData.field106" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择开标时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否中标" prop="field107">
|
||||
<el-radio-group v-model="formData.field107" size="medium">
|
||||
<el-radio v-for="(item, index) in field107Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="中标单位" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="请输入中标单位" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="中标金额" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="请输入中标金额" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="中标金额大写" prop="field110">
|
||||
<el-input v-model="formData.field110" placeholder="请输入中标金额大写" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="投标总结" prop="field111">
|
||||
<el-input v-model="formData.field111" type="textarea" placeholder="请输入投标总结"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field112">
|
||||
<el-upload ref="field112" :file-list="field112fileList" :action="field112Action"
|
||||
:before-upload="field112BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
</el-card>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: null,
|
||||
field106: null,
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field109: undefined,
|
||||
field110: undefined,
|
||||
field111: undefined,
|
||||
field112: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [],
|
||||
field106: [],
|
||||
field107: [{
|
||||
required: true,
|
||||
message: '是否中标不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '请输入中标单位',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '请输入中标金额',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field110: [],
|
||||
field111: [],
|
||||
},
|
||||
field112Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field112fileList: [],
|
||||
field107Options: [{
|
||||
"label": "是",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "否",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field112BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
387
src/views/tender/reviewTender/InitiateProcess.vue
Normal file
387
src/views/tender/reviewTender/InitiateProcess.vue
Normal file
@ -0,0 +1,387 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="124px" label-position="left">
|
||||
|
||||
<el-card>
|
||||
<div class="tit">基本信息</div>
|
||||
|
||||
<el-row :gutter="10">
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="标书信息" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入标书信息" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="购买人员" prop="field102">
|
||||
<el-input v-model="formData.field102" placeholder="请输入购买人员" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="客户名称" prop="field103">
|
||||
<el-input v-model="formData.field103" placeholder="请输入客户名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" prop="field104">
|
||||
<el-input v-model="formData.field104" placeholder="请输入项目名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="招标公司名称" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="请输入招标公司名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="投标公司名称" prop="field106">
|
||||
<el-input v-model="formData.field106" placeholder="请输入投标公司名称" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="购买标书金额" prop="field107">
|
||||
<el-input v-model="formData.field107" placeholder="请输入购买标书金额" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="招标项目资金来源" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="请输入招标项目资金来源" clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="投标时间" prop="field110">
|
||||
<el-date-picker v-model="formData.field110" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择投标时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="购买标书时间" prop="field111">
|
||||
<el-date-picker v-model="formData.field111" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择购买标书时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="招标方式" prop="field112">
|
||||
<el-date-picker v-model="formData.field112" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择招标方式" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="投标地址" prop="field113">
|
||||
<el-date-picker v-model="formData.field113" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择投标地址" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否需要保证金" prop="field114">
|
||||
<el-radio-group v-model="formData.field114" size="medium">
|
||||
<el-radio v-for="(item, index) in field114Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="保证金金额" prop="field115">
|
||||
<el-input v-model="formData.field115" placeholder="请选择保证金金额" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="开标日期" prop="field117">
|
||||
<el-date-picker v-model="formData.field117" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择开标日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="保证金退还时间" prop="field118">
|
||||
<el-date-picker v-model="formData.field118" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择保证金退还时间" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="招标项目情况" prop="field119">
|
||||
<el-input v-model="formData.field119" type="textarea" placeholder="请输入招标项目情况"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="项目简介" prop="field121">
|
||||
<el-input v-model="formData.field121" type="textarea" placeholder="请输入项目简介"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field122">
|
||||
<el-upload ref="field122" :file-list="field122fileList" :action="field122Action"
|
||||
:before-upload="field122BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card>
|
||||
<div class="tit">技术审查</div>
|
||||
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="技术协议偏差" prop="field124">
|
||||
<el-input v-model="formData.field124" placeholder="请输入技术协议偏差" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="协议偏差处理方案" prop="field126">
|
||||
<el-input v-model="formData.field126" type="textarea" placeholder="请输入协议偏差处理方案"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field128">
|
||||
<el-upload ref="field128" :file-list="field128fileList" :action="field128Action"
|
||||
:before-upload="field128BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card>
|
||||
<div class="tit">商务审查</div>
|
||||
|
||||
<el-row :gutter="10">
|
||||
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="总金额" prop="field129">
|
||||
<el-input v-model="formData.field129" placeholder="请输入总金额" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="税率" prop="field130">
|
||||
<el-input v-model="formData.field130" placeholder="请输入税率" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="付款方式" prop="field131">
|
||||
<el-select v-model="formData.field131" placeholder="请选择付款方式" clearable
|
||||
:style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field131Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="付款比例" prop="field132">
|
||||
<el-input v-model="formData.field132" placeholder="请输入付款比例" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商务合同偏差" prop="field133">
|
||||
<el-input v-model="formData.field133" placeholder="请输入商务合同偏差" clearable
|
||||
:style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="偏差处理方案" prop="field134">
|
||||
<el-input v-model="formData.field134" type="textarea" placeholder="请输入偏差处理方案"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="field135">
|
||||
<el-upload ref="field135" :file-list="field135fileList" :action="field135Action"
|
||||
:before-upload="field135BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field102: undefined,
|
||||
field103: undefined,
|
||||
field104: undefined,
|
||||
field105: undefined,
|
||||
field106: undefined,
|
||||
field107: undefined,
|
||||
field108: undefined,
|
||||
field110: null,
|
||||
field111: null,
|
||||
field112: null,
|
||||
field113: null,
|
||||
field114: undefined,
|
||||
field115: null,
|
||||
field117: null,
|
||||
field118: null,
|
||||
field119: undefined,
|
||||
field121: undefined,
|
||||
field122: null,
|
||||
field124: undefined,
|
||||
field126: undefined,
|
||||
field128: null,
|
||||
field129: undefined,
|
||||
field130: undefined,
|
||||
field131: undefined,
|
||||
field132: undefined,
|
||||
field133: undefined,
|
||||
field134: undefined,
|
||||
field135: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入标书信息',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field102: [{
|
||||
required: true,
|
||||
message: '请输入购买人员',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field103: [{
|
||||
required: true,
|
||||
message: '请输入客户名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请输入项目名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [],
|
||||
field106: [],
|
||||
field107: [],
|
||||
field108: [],
|
||||
field110: [],
|
||||
field111: [],
|
||||
field112: [],
|
||||
field113: [],
|
||||
field114: [],
|
||||
field115: [],
|
||||
field117: [],
|
||||
field118: [],
|
||||
field119: [],
|
||||
field121: [],
|
||||
field124: [],
|
||||
field126: [],
|
||||
field129: [],
|
||||
field130: [],
|
||||
field131: [],
|
||||
field132: [],
|
||||
field133: [],
|
||||
field134: [],
|
||||
},
|
||||
field122Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field122fileList: [],
|
||||
field128Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field128fileList: [],
|
||||
field135Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field135fileList: [],
|
||||
field114Options: [{
|
||||
"label": "是",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "否",
|
||||
"value": 2
|
||||
}],
|
||||
field131Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field122BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
field128BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
field135BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.tit {
|
||||
font-size: 17px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
|
208
src/views/tender/reviewTender/Projectbudget.vue
Normal file
208
src/views/tender/reviewTender/Projectbudget.vue
Normal file
@ -0,0 +1,208 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px" label-position="left">
|
||||
<el-form-item label="组织名称" prop="field101">
|
||||
<el-input v-model="formData.field101" placeholder="请输入组织名称" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="field104">
|
||||
<el-select v-model="formData.field104" placeholder="请选择部门名称" clearable :style="{ width: '100%' }">
|
||||
<el-option v-for="(item, index) in field104Options" :key="index" :label="item.label"
|
||||
:value="item.value" :disabled="item.disabled"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目名称" prop="field109">
|
||||
<el-input v-model="formData.field109" placeholder="点教选择项目" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目编码" prop="field105">
|
||||
<el-input v-model="formData.field105" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="客户名称" prop="field108">
|
||||
<el-input v-model="formData.field108" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="概算来源" prop="field118">
|
||||
<el-radio-group v-model="formData.field118" size="medium">
|
||||
<el-radio v-for="(item, index) in field118Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求名称" prop="field122">
|
||||
<el-input v-model="formData.field122" placeholder="点教选择需求名称" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人" prop="field119">
|
||||
<el-input v-model="formData.field119" placeholder="点教选择联系人" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="field120">
|
||||
<el-input v-model="formData.field120" placeholder="系统自动获取" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="制单人" prop="field123">
|
||||
<el-input v-model="formData.field123" placeholder="请输入制单人" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="报价日期" prop="field124">
|
||||
<el-date-picker v-model="formData.field124" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
|
||||
:style="{ width: '100%' }" placeholder="请选择报价日期" clearable></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="发票类型" prop="field125">
|
||||
<el-radio-group v-model="formData.field125" size="medium">
|
||||
<el-radio v-for="(item, index) in field125Options" :key="index" :label="item.value"
|
||||
:disabled="item.disabled">{{ item.label }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="技术人员" prop="field127">
|
||||
<el-input v-model="formData.field127" placeholder="点教选择技术人员" :disabled='true' clearable
|
||||
:style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="概算金额(万)" prop="field126">
|
||||
<el-input v-model="formData.field126" placeholder="点教选择概算金额(万)" clearable :style="{ width: '100%' }">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="需求" prop="field128">
|
||||
<el-input v-model="formData.field128" type="textarea" placeholder="请输入需求"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件" prop="field129">
|
||||
<el-upload ref="field129" :file-list="field129fileList" :action="field129Action"
|
||||
:before-upload="field129BeforeUpload">
|
||||
<el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item size="large">
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
<el-button @click="resetForm">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
field101: undefined,
|
||||
field104: undefined,
|
||||
field109: undefined,
|
||||
field105: undefined,
|
||||
field108: undefined,
|
||||
field118: undefined,
|
||||
field122: undefined,
|
||||
field119: undefined,
|
||||
field120: undefined,
|
||||
field123: undefined,
|
||||
field124: null,
|
||||
field125: undefined,
|
||||
field127: undefined,
|
||||
field126: undefined,
|
||||
field128: undefined,
|
||||
field129: null,
|
||||
},
|
||||
rules: {
|
||||
field101: [{
|
||||
required: true,
|
||||
message: '请输入组织名称',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field104: [{
|
||||
required: true,
|
||||
message: '请选择部门名称',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field109: [{
|
||||
required: true,
|
||||
message: '点教选择项目',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field105: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field108: [{
|
||||
required: true,
|
||||
message: '系统自动获取',
|
||||
trigger: 'blur'
|
||||
}],
|
||||
field118: [{
|
||||
required: true,
|
||||
message: '概算来源不能为空',
|
||||
trigger: 'change'
|
||||
}],
|
||||
field122: [],
|
||||
field119: [],
|
||||
field120: [],
|
||||
field123: [],
|
||||
field124: [],
|
||||
field125: [],
|
||||
field127: [],
|
||||
field126: [],
|
||||
field128: [],
|
||||
},
|
||||
field129Action: 'https://jsonplaceholder.typicode.com/posts/',
|
||||
field129fileList: [],
|
||||
field104Options: [{
|
||||
"label": "选项一",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "选项二",
|
||||
"value": 2
|
||||
}],
|
||||
field118Options: [{
|
||||
"label": "自己概算",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "客户提供",
|
||||
"value": 2
|
||||
}],
|
||||
field125Options: [{
|
||||
"label": "专票",
|
||||
"value": 1
|
||||
}, {
|
||||
"label": "普通",
|
||||
"value": 2
|
||||
}, {
|
||||
"label": "收据",
|
||||
"value": 3
|
||||
}],
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
watch: {},
|
||||
created() { },
|
||||
mounted() { },
|
||||
methods: {
|
||||
submitForm() {
|
||||
this.$refs['elForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
// TODO 提交表单
|
||||
})
|
||||
},
|
||||
resetForm() {
|
||||
this.$refs['elForm'].resetFields()
|
||||
},
|
||||
field129BeforeUpload(file) {
|
||||
let isRightSize = file.size / 1024 / 1024 < 2
|
||||
if (!isRightSize) {
|
||||
this.$message.error('文件大小超过 2MB')
|
||||
}
|
||||
return isRightSize
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
<style>
|
||||
.el-upload__tip {
|
||||
line-height: 1.2;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
x
Reference in New Issue
Block a user