页面修改

This commit is contained in:
zmj 2023-11-10 18:24:45 +08:00
parent 83ef4f1e40
commit 69c89d5ad1
7 changed files with 325 additions and 351 deletions

9
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,9 @@
{
"editor.formatOnSave": true,
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
}

View File

@ -4,7 +4,7 @@
<transition name="title-width"> <transition name="title-width">
<div <div
v-show="showTitle" v-show="showTitle"
class="logo-title overflow-hidden whitespace-nowrap" class="overflow-hidden logo-title whitespace-nowrap"
:class="{ 'text-white': theme == ThemeEnum.DARK }" :class="{ 'text-white': theme == ThemeEnum.DARK }"
:style="{ left: `${szie + 16}px` }" :style="{ left: `${szie + 16}px` }"
> >

View File

@ -1,16 +1,11 @@
<template> <template>
<template v-if="!route.meta?.hidden"> <template v-if="!route.meta?.hidden">
<!-- {{ routePath }} --> <!-- {{ routePath }} -->
<app-link v-if="!hasShowChild" :to="`${routePath}?${queryStr}`"> <app-link v-if="!hasShowChild" :to="`${routePath}?${queryStr}`">
<el-menu-item :index="routePath"> <el-menu-item :index="routePath">
<icon <icon class="menu-item-icon" :size="16" v-if="routeMeta?.icon" :name="routeMeta?.icon" />
class="menu-item-icon"
:size="16"
v-if="routeMeta?.icon"
:name="routeMeta?.icon"
/>
<template #title> <template #title>
<span>{{ routeMeta?.title }}</span> <span>{{ routeMeta?.title }}</span>
</template> </template>
@ -18,21 +13,11 @@
</app-link> </app-link>
<el-sub-menu v-else :index="routePath" :popper-class="popperClass"> <el-sub-menu v-else :index="routePath" :popper-class="popperClass">
<template #title> <template #title>
<icon <icon class="menu-item-icon" :size="16" v-if="routeMeta?.icon" :name="routeMeta?.icon" />
class="menu-item-icon"
:size="16"
v-if="routeMeta?.icon"
:name="routeMeta?.icon"
/>
<span>{{ routeMeta?.title }}</span> <span>{{ routeMeta?.title }}</span>
</template> </template>
<menu-item <menu-item v-for="item in route?.children" :key="resolvePath(item.path)" :route="item"
v-for="item in route?.children" :route-path="resolvePath(item.path)" :popper-class="popperClass" />
:key="resolvePath(item.path)"
:route="item"
:route-path="resolvePath(item.path)"
:popper-class="popperClass"
/>
</el-sub-menu> </el-sub-menu>
</template> </template>
</template> </template>

View File

@ -47,9 +47,6 @@ router.beforeEach(async (to, from, next) => {
let data=await getUserInfo() let data=await getUserInfo()
// console.log(filterAsyncRoutes(data.menu))
// console.log(userStore.routes)
const routes = filterAsyncRoutes(data.menu) const routes = filterAsyncRoutes(data.menu)
// 找到第一个有效路由 // 找到第一个有效路由

View File

@ -25,9 +25,9 @@ const useUserStore = defineStore({
perms: [] perms: []
}), }),
getters: {}, getters: {},
actions: { actions: {
resetState() { resetState() { this.token = ''
this.token = ''
this.userInfo = {} this.userInfo = {}
this.perms = [] this.perms = []
}, },

View File

@ -1,323 +0,0 @@
<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>

View File

@ -0,0 +1,306 @@
<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="请输入合同名称" 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="12">
<el-form-item label="税率" prop="field113">
<el-select v-model="formData.field113" placeholder="请选择税率" clearable :style="{width: '100%'}">
<el-option v-for="(item, index) in field113Options" :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="field114">
<el-input v-model="formData.field114" placeholder="系统自动计算不" :disabled='true' 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="系统自动计算" :disabled='true' clearable
: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" required>
<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-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: 1,
field108: null,
field109: 1,
field110: 1,
field111: undefined,
field112: undefined,
field113: undefined,
field114: undefined,
field116: undefined,
field117: undefined,
field118: undefined,
field119: 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: [{
required: true,
message: '账期不能为空',
trigger: 'change'
}],
field111: [],
field112: [{
required: true,
message: '系统自动填写',
trigger: 'blur'
}],
field113: [{
required: true,
message: '请选择税率',
trigger: 'change'
}],
field114: [],
field116: [{
required: true,
message: '请输入质保金比例(%)',
trigger: 'blur'
}],
field117: [{
required: true,
message: '系统自动计算',
trigger: 'blur'
}],
field118: [],
},
field119Action: 'https://jsonplaceholder.typicode.com/posts/',
field119fileList: [],
field107Options: [{
"label": "专业分包",
"value": 1
}, {
"label": "劳务分包",
"value": 2
}],
field109Options: [{
"label": "承兑",
"value": 1
}, {
"label": "电汇",
"value": 2
}, {
"label": "支票",
"value": 3
}],
field110Options: [{
"label": "现结",
"value": 1
}, {
"label": "月结",
"value": 2
}, {
"label": "季度结",
"value": 3
}],
field113Options: [{
"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()
},
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;
}
</style>