代码完善
This commit is contained in:
parent
547b648140
commit
2f82fffe13
|
|
@ -8,14 +8,23 @@ export {}
|
|||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
Breadcrumb: typeof import('./src/components/Breadcrumb/index.vue')['default']
|
||||
ElBadge: typeof import('element-plus/es')['ElBadge']
|
||||
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
|
||||
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCarousel: typeof import('element-plus/es')['ElCarousel']
|
||||
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
|
||||
ElCascader: typeof import('element-plus/es')['ElCascader']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElCountdown: typeof import('element-plus/es')['ElCountdown']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElEmpty: typeof import('element-plus/es')['ElEmpty']
|
||||
ElForm: typeof import('element-plus/es')['ElForm']
|
||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||
ElHeader: typeof import('element-plus/es')['ElHeader']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElImage: typeof import('element-plus/es')['ElImage']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
|
|
@ -23,11 +32,16 @@ declare module 'vue' {
|
|||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
|
||||
ElPagination: typeof import('element-plus/es')['ElPagination']
|
||||
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
|
||||
ElProgress: typeof import('element-plus/es')['ElProgress']
|
||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElRow: typeof import('element-plus/es')['ElRow']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElStep: typeof import('element-plus/es')['ElStep']
|
||||
ElSteps: typeof import('element-plus/es')['ElSteps']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
|
|
@ -24,3 +24,7 @@ export const deleteLeaseInfoApi = (data: any) => {
|
|||
export const getAcceptOrdersListApi = (data: any) => {
|
||||
return get('/material-mall/ma-lease/rentList', data)
|
||||
}
|
||||
// 接单审核
|
||||
export const maLeaseAuditApi = (data: any) => {
|
||||
return post('/material-mall/ma-lease/audit', data)
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
</el-row>
|
||||
<el-row class="item">
|
||||
<el-col :span="5">
|
||||
<div class="label">参考图片/样式:</div>
|
||||
<div class="label">需求清单:</div>
|
||||
</el-col>
|
||||
<el-col :span="18">
|
||||
<div class="img-list">
|
||||
|
|
@ -46,6 +46,35 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<el-row style="padding: 8px 0; font-size: 16px"> 装备需求信息 </el-row>
|
||||
<div
|
||||
class="demand-info-list"
|
||||
v-for="item in leaseDetails.detailsList"
|
||||
:key="item.id"
|
||||
>
|
||||
<el-row style="padding: 10px 0">
|
||||
<el-col :span="4">
|
||||
<span class="label">装备类目:</span>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<span>{{ item.groupName }}</span>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="4">
|
||||
<span class="label">预估数量:</span>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<span>{{ item.leaseNum }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="label" style="padding: 10px 0">参考图片/样式:</div>
|
||||
<el-row>
|
||||
<el-col :span="12" v-for="img in item.fileInfoList" :key="img.id">
|
||||
<img :src="img.fileUrl" alt="" style="width: 98%; height: 120px" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="count-down">
|
||||
|
|
@ -82,13 +111,13 @@
|
|||
</div>
|
||||
<div style="text-align: right">
|
||||
<el-button
|
||||
class="item_btn applyFor"
|
||||
style="background-color: #1abc9c"
|
||||
:style="
|
||||
userId == leaseDetails.publishUser ? 'opacity:0.5;color:#fff' : ''
|
||||
"
|
||||
class="item_btn primary-lease"
|
||||
type="primary"
|
||||
@click="onAcceptOrders"
|
||||
:disabled="userId == leaseDetails.publishUser"
|
||||
:disabled="
|
||||
userId == leaseDetails.publishUser ||
|
||||
companyId == leaseDetails.publishCompany
|
||||
"
|
||||
v-if="leaseDetails.leaseStatus !== 1"
|
||||
>
|
||||
立即接单
|
||||
|
|
@ -117,6 +146,7 @@ const route = useRoute()
|
|||
const router = useRouter()
|
||||
const store: any = mainStore()
|
||||
const userId = store.userInfo.userId
|
||||
const companyId = store.userInfo.companyId
|
||||
|
||||
//设备简略基本信息
|
||||
const equipBaseInfoList = reactive([
|
||||
|
|
@ -124,10 +154,10 @@ const equipBaseInfoList = reactive([
|
|||
label: '需求编号',
|
||||
key: 'leaseCode',
|
||||
},
|
||||
{
|
||||
label: '装备类目',
|
||||
key: 'groupName',
|
||||
},
|
||||
// {
|
||||
// label: '装备类目',
|
||||
// key: 'groupName',
|
||||
// },
|
||||
{
|
||||
label: '联系人',
|
||||
key: 'person',
|
||||
|
|
@ -140,10 +170,10 @@ const equipBaseInfoList = reactive([
|
|||
label: '所属地市',
|
||||
key: 'areaName',
|
||||
},
|
||||
{
|
||||
label: '预估数量',
|
||||
key: 'leaseNum',
|
||||
},
|
||||
// {
|
||||
// label: '预估数量',
|
||||
// key: 'leaseNum',
|
||||
// },
|
||||
{
|
||||
label: '预估租赁天数',
|
||||
key: 'leaseDay',
|
||||
|
|
@ -536,6 +566,7 @@ onMounted(() => {
|
|||
.item_btn {
|
||||
width: 110px;
|
||||
height: 36px;
|
||||
margin-top: 80px;
|
||||
line-height: 36px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
|
|
@ -578,4 +609,17 @@ onMounted(() => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.demand-info-list {
|
||||
padding: 6px 0;
|
||||
box-sizing: content-box;
|
||||
|
||||
.label {
|
||||
font-size: 14px;
|
||||
font-family: PingFangSC, PingFang SC;
|
||||
// font-weight: 600;
|
||||
color: #8e8e8e;
|
||||
// margin-right: 15px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import { reactive, ref } from 'vue'
|
|||
import baseData from '@/assets/baseInformation.json'
|
||||
|
||||
import imgSrc from '../../assets/img/home/nw.png'
|
||||
import swiper_1 from '../../assets/img/home/swiper01.png'
|
||||
import swiper_2 from '../../assets/img/home/swiper02.png'
|
||||
|
||||
const router: any = useRouter()
|
||||
|
||||
|
|
@ -23,6 +25,8 @@ const loopList = ref([
|
|||
'https://zlpt-1259760603.cos.ap-nanjing.myqcloud.com/488bab245180ebf9f1f3d7db5301be4.png',
|
||||
// 'https://jmy-pic.baidu.com/0/pic/-1857035387_-1067811148_-1621691324.png',
|
||||
imgSrc,
|
||||
swiper_1,
|
||||
swiper_2,
|
||||
])
|
||||
// 获取商品分类
|
||||
const getGoodsClassList = async () => {
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@
|
|||
<div>预估数量</div>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<div>{{ item.leaseNum }}</div>
|
||||
<div>{{ item.leaseTotalNum }}</div>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<div>预估租期(天)</div>
|
||||
|
|
@ -185,7 +185,9 @@
|
|||
border: none;
|
||||
border-radius: 0;
|
||||
"
|
||||
:disabled="userId == item.publishUser"
|
||||
:disabled="
|
||||
userId == item.publishUser || companyId == item.publishCompany
|
||||
"
|
||||
:style="userId == item.publishUser ? 'opacity:0.5;color:#fff' : ''"
|
||||
@click="onAcceptOrders(item.id)"
|
||||
>
|
||||
|
|
@ -227,6 +229,7 @@ const router = useRouter()
|
|||
const route: any = useRoute()
|
||||
const store: any = mainStore()
|
||||
const userId = store.userInfo.userId
|
||||
const companyId = store.userInfo.companyId
|
||||
const leaseList = ref<any>([])
|
||||
|
||||
//筛选条件列表数据
|
||||
|
|
@ -334,9 +337,9 @@ getTypeListData()
|
|||
// 获取设备所在地
|
||||
const getCompanyAddressListData = async () => {
|
||||
const res: any = await getCompanyListApi()
|
||||
const result: any = await getAreaApi()
|
||||
const result: any = await getAreaApi(34)
|
||||
const addressList = result.data.map((e: any) => {
|
||||
return { ...e, name: e.areaName, value: e.areaId, isChecked: false, index: 1 }
|
||||
return { ...e, name: e.areaName, value: e.areaCode, isChecked: false, index: 1 }
|
||||
})
|
||||
const companyList = res.data.map((e: any) => {
|
||||
return { ...e, name: e.companyName, value: e.companyId, isChecked: false, index: 2 }
|
||||
|
|
@ -353,7 +356,7 @@ const getLeaseListData = async (keyWord: any = '') => {
|
|||
companyId: '',
|
||||
typeId: '',
|
||||
level: '',
|
||||
areaId: '',
|
||||
cityCode: '',
|
||||
startTime: optionActive.value == 0 ? screenOptionList[optionActive.value].sort : '',
|
||||
rentDay: optionActive.value == 1 ? screenOptionList[optionActive.value].sort : '',
|
||||
endTime: optionActive.value == 2 ? screenOptionList[optionActive.value].sort : '',
|
||||
|
|
@ -368,7 +371,7 @@ const getLeaseListData = async (keyWord: any = '') => {
|
|||
}
|
||||
|
||||
if (index == 1 && j.isChecked) {
|
||||
searchParams.areaId = j.value
|
||||
searchParams.cityCode = j.value
|
||||
}
|
||||
if (index == 2 && j.isChecked) {
|
||||
searchParams.companyId = j.value
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@
|
|||
<el-table-column align="center" prop="orderUser" label="操作人" />
|
||||
<el-table-column align="center" prop="endTime" label="需求截止日期" />
|
||||
<el-table-column align="center" prop="orderTime" label="接单时间" />
|
||||
<el-table-column align="center" prop="leaseStatusName" label="状态" />
|
||||
<!-- <el-table-column align="center" prop="leaseStatusName" label="需求状态" />
|
||||
<el-table-column align="center" label="操作" :width="220">
|
||||
<template #default="{ row }">
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="leaseName" label="需求名称" />
|
||||
<el-table-column align="center" prop="operateAddress" label="需求所在地" />
|
||||
<el-table-column align="center" prop="cityName" label="需求所在地" />
|
||||
<el-table-column align="center" prop="publishUser" label="发布人" />
|
||||
<el-table-column align="center" prop="endTime" label="需求截止日期" width="120" />
|
||||
<el-table-column align="center" prop="startTime" label="发布时间" />
|
||||
|
|
@ -124,7 +124,7 @@
|
|||
size="small"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
v-if="row.leaseStatus === 2"
|
||||
v-if="row.leaseStatus === 2 || row.leaseStatus === 4"
|
||||
@click="onRepublish(row.id, false)"
|
||||
>
|
||||
重新发布
|
||||
|
|
@ -133,18 +133,36 @@
|
|||
size="small"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
v-if="row.leaseStatus === 2 || row.leaseStatus === 0"
|
||||
v-if="row.leaseStatus === 2 || row.leaseStatus === 0 || row.leaseStatus === 4"
|
||||
@click="onRepublish(row.id, true, row.leaseStatus)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
v-if="row.leaseStatus === 3"
|
||||
@click="onAuditing(row.id, 1)"
|
||||
>
|
||||
通过
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
v-if="row.leaseStatus === 3"
|
||||
@click="onAuditing(row.id, 4)"
|
||||
>
|
||||
驳回
|
||||
</el-button>
|
||||
<el-popconfirm
|
||||
width="220"
|
||||
:icon="InfoFilled"
|
||||
icon-color="#626AEF"
|
||||
title="确定删除该项需求吗?"
|
||||
@confirm="onDelete(row.id)"
|
||||
v-if="row.leaseStatus != 1"
|
||||
v-if="row.leaseStatus === 2 || row.leaseStatus === 0"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button size="small" type="primary" class="primary-lease">
|
||||
|
|
@ -201,59 +219,22 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="装备类目" prop="typeIds">
|
||||
<el-cascader
|
||||
clearable
|
||||
style="width: 100%"
|
||||
:options="classOptions"
|
||||
:show-all-levels="false"
|
||||
placeholder="请选择装备类目"
|
||||
v-model="addOrEditForm.typeIds"
|
||||
:props="{
|
||||
value: 'id',
|
||||
label: 'name',
|
||||
checkStrictly: true,
|
||||
}"
|
||||
@change="onChangeClass"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="租赁公司" prop="companyId">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请选择租赁公司"
|
||||
v-model="addOrEditForm.companyId"
|
||||
>
|
||||
<el-option
|
||||
:key="item.companyId"
|
||||
:value="item.companyId"
|
||||
:label="item.companyName"
|
||||
v-for="item in companyOptions"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="项目所在地" style="width: 100%" prop="areaId">
|
||||
<el-form-item label="项目所在地" style="width: 100%" prop="provinceCode">
|
||||
<el-row :span="24">
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="areaId">
|
||||
<el-form-item>
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 95%"
|
||||
placeholder="请选择项目所在省"
|
||||
v-model="addOrEditForm.areaId"
|
||||
v-model="addOrEditForm.provinceCode"
|
||||
@change="onProvinceChange($event)"
|
||||
>
|
||||
<el-option
|
||||
:key="item.areaId"
|
||||
:value="item.areaCode"
|
||||
:value="item.areaCode * 1"
|
||||
:label="item.areaName"
|
||||
v-for="item in areaList"
|
||||
/>
|
||||
|
|
@ -261,17 +242,17 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="areaId">
|
||||
<el-form-item prop="cityCode">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 95%"
|
||||
placeholder="请选择项目所在市"
|
||||
v-model="addOrEditForm.areaId2"
|
||||
v-model="addOrEditForm.cityCode"
|
||||
@change="onCityChange($event)"
|
||||
>
|
||||
<el-option
|
||||
:key="item.areaId"
|
||||
:value="item.areaCode"
|
||||
:value="item.areaCode * 1"
|
||||
:label="item.areaName"
|
||||
v-for="item in areaCityList"
|
||||
/>
|
||||
|
|
@ -279,17 +260,17 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="areaId">
|
||||
<el-form-item prop="areaCode">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 95%"
|
||||
placeholder="请选择项所在县"
|
||||
v-model="addOrEditForm.areaId1"
|
||||
placeholder="请选择项所在区/县"
|
||||
v-model="addOrEditForm.areaCode"
|
||||
@change="onCountyChange($event)"
|
||||
>
|
||||
<el-option
|
||||
:key="item.areaId"
|
||||
:value="item.areaCode"
|
||||
:value="item.areaCode * 1"
|
||||
:label="item.areaName"
|
||||
v-for="item in areaCountyList"
|
||||
/>
|
||||
|
|
@ -297,12 +278,12 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="areaId">
|
||||
<el-form-item prop="address">
|
||||
<el-input
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="请输入详细地址"
|
||||
v-model="addOrEditForm.areaId3"
|
||||
v-model="addOrEditForm.address"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -356,19 +337,6 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="预估数量" prop="leaseNum">
|
||||
<el-input-number
|
||||
clearable
|
||||
:min="1"
|
||||
:max="9999"
|
||||
style="width: 100%"
|
||||
placeholder="请输入预估数量"
|
||||
v-model="addOrEditForm.leaseNum"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
|
|
@ -403,12 +371,11 @@
|
|||
height="100px"
|
||||
:multiple="true"
|
||||
:autoUpload="true"
|
||||
:minLimit="minLimit"
|
||||
:minLimit="addOrEditForm.fileInfoList.length"
|
||||
:actionUrl="uploadUrl"
|
||||
listType="picture-card"
|
||||
@onFileChange="onFileChange"
|
||||
:acceptTypeList="['.jpg', '.png']"
|
||||
:fileListN="addOrEditForm.fileInfoList"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
|
|
@ -433,7 +400,7 @@
|
|||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="装备需求信息" style="font-weight: bold">
|
||||
<el-form-item label="装备需求信息" style="font-weight: bold" prop="detailsList">
|
||||
<el-button class="primary-lease" type="primary" @click="onAddDemandInfo">
|
||||
添加装备描述
|
||||
</el-button>
|
||||
|
|
@ -445,7 +412,7 @@
|
|||
<el-form
|
||||
label-width="auto"
|
||||
label-position="right"
|
||||
v-for="(item, index) in addOrEditDemandFormList"
|
||||
v-for="(item, index) in addOrEditForm.detailsList"
|
||||
:key="item.newId"
|
||||
:model="item"
|
||||
:rules="addOrEditDemandFormRules"
|
||||
|
|
@ -514,16 +481,18 @@
|
|||
<el-row :gutter="24">
|
||||
<el-col :span="20">
|
||||
<el-form-item label="参考图片/样式">
|
||||
<div class="img-list" v-if="addOrEditForm.fileInfoList.length > 0">
|
||||
<div class="img-list" v-if="item.fileInfoList.length > 0">
|
||||
<div
|
||||
v-for="(item, index) in addOrEditForm.fileInfoList"
|
||||
:key="item.id"
|
||||
v-for="(j, i) in item.fileInfoList"
|
||||
:key="j.fileUrl"
|
||||
class="img-items"
|
||||
>
|
||||
<img :src="item.fileUrl" alt="" />
|
||||
<img :src="j.fileUrl" alt="" />
|
||||
|
||||
<div class="mask-img">
|
||||
<el-icon class="delete-icon" @click="onDeleteImg(index)"
|
||||
<el-icon
|
||||
class="delete-icon"
|
||||
@click="onDeleteImgInDetails(index, i)"
|
||||
><DeleteFilled
|
||||
/></el-icon>
|
||||
</div>
|
||||
|
|
@ -534,14 +503,14 @@
|
|||
:max-limit="4"
|
||||
width="100px"
|
||||
height="100px"
|
||||
:currentIndex="index"
|
||||
:multiple="true"
|
||||
:autoUpload="true"
|
||||
:minLimit="minLimit"
|
||||
:minLimit="item.fileInfoList.length"
|
||||
:actionUrl="uploadUrl"
|
||||
listType="picture-card"
|
||||
@onFileChange="onFileChange"
|
||||
@onFileChange="onFileChangeInDetails"
|
||||
:acceptTypeList="['.jpg', '.png']"
|
||||
:fileListN="addOrEditForm.fileInfoList"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
|
|
@ -549,7 +518,7 @@
|
|||
</UploadComponentNew>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-col :span="4" v-if="index !== 0">
|
||||
<el-button
|
||||
size="small"
|
||||
type="danger"
|
||||
|
|
@ -587,12 +556,13 @@ import { getCompanyListApi, getGoodsClassListApi, getAreaApi } from 'http/api/ho
|
|||
import {
|
||||
addLeaseInfoApi,
|
||||
getLeaseListApi,
|
||||
maLeaseAuditApi,
|
||||
editLeaseInfoApi,
|
||||
deleteLeaseInfoApi,
|
||||
getLeaseDetailsByIdApi,
|
||||
} from 'http/api/sourcing/index'
|
||||
import { InfoFilled } from '@element-plus/icons-vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { useRouter } from 'vue-router'
|
||||
const total = ref(0)
|
||||
const endTime = ref([])
|
||||
|
|
@ -629,44 +599,51 @@ const searchParams = reactive({
|
|||
})
|
||||
const addOrEditForm = ref<any>({
|
||||
leaseName: '',
|
||||
typeId: '',
|
||||
typeIds: [],
|
||||
companyId: '',
|
||||
person: '',
|
||||
personPhone: '',
|
||||
leaseDay: 1,
|
||||
leaseNum: 1,
|
||||
endTime: '',
|
||||
description: '',
|
||||
isSubmit: '',
|
||||
fileInfoList: [],
|
||||
areaId: '',
|
||||
fileInfoTempList: [],
|
||||
areaCode: '',
|
||||
cityCode: '',
|
||||
provinceCode: '',
|
||||
address: '',
|
||||
detailsList: [],
|
||||
})
|
||||
const addOrEditFormTemp = ref<any>({
|
||||
leaseName: '',
|
||||
typeId: '',
|
||||
typeIds: [],
|
||||
companyId: '',
|
||||
person: '',
|
||||
personPhone: '',
|
||||
leaseDay: 1,
|
||||
leaseNum: 1,
|
||||
endTime: '',
|
||||
description: '',
|
||||
isSubmit: '',
|
||||
fileInfoList: fileListTemp ? fileListTemp : [],
|
||||
areaId: '',
|
||||
fileInfoList: [],
|
||||
fileInfoTempList: [],
|
||||
areaCode: '',
|
||||
cityCode: '',
|
||||
provinceCode: '',
|
||||
address: '',
|
||||
detailsList: [],
|
||||
})
|
||||
|
||||
const addOrEditFormRules = reactive({
|
||||
person: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
|
||||
leaseDay: [{ required: true, message: '请输入预估租期', trigger: 'blur' }],
|
||||
|
||||
leaseName: [{ required: true, message: '请输入需求名称', trigger: 'blur' }],
|
||||
areaId: [{ required: true, message: '请选择项目所在地', trigger: 'change' }],
|
||||
areaCode: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }],
|
||||
cityCode: [{ required: true, message: '请选择项目所在市', trigger: 'change' }],
|
||||
provinceCode: [{ required: true, message: '请选择项目所在省', trigger: 'change' }],
|
||||
address: [{ required: true, message: '请输入项目详细地址', trigger: 'blur' }],
|
||||
companyId: [{ required: true, message: '请选择租赁公司', trigger: 'change' }],
|
||||
fileInfoList: [{ required: true, message: '请上传参考图片', trigger: 'blur' }],
|
||||
endTime: [{ required: true, message: '请选择需求截止日期', trigger: 'change' }],
|
||||
detailsList: [{ required: true, message: '请添加需求装备信息', trigger: 'change' }],
|
||||
personPhone: [
|
||||
{ required: true, message: '请输入联系电话', trigger: 'blur' },
|
||||
{
|
||||
|
|
@ -748,40 +725,46 @@ const onRepublish = async (id: any, type: any, leaseStatus: any) => {
|
|||
const res: any = await getLeaseDetailsByIdApi({ id })
|
||||
const {
|
||||
leaseName,
|
||||
typeId,
|
||||
companyId,
|
||||
person,
|
||||
personPhone,
|
||||
leaseDay,
|
||||
leaseNum,
|
||||
endTime,
|
||||
description,
|
||||
typeIds,
|
||||
fileInfoList,
|
||||
areaId,
|
||||
areaCode,
|
||||
address,
|
||||
cityCode,
|
||||
provinceCode,
|
||||
detailsList,
|
||||
} = res.data
|
||||
|
||||
Object.assign(addOrEditForm.value, {
|
||||
leaseName,
|
||||
typeId,
|
||||
companyId,
|
||||
person,
|
||||
personPhone,
|
||||
leaseDay,
|
||||
leaseNum,
|
||||
endTime,
|
||||
description,
|
||||
typeIds,
|
||||
id,
|
||||
fileInfoList: fileInfoList ? fileInfoList : [],
|
||||
areaId,
|
||||
areaCode,
|
||||
address,
|
||||
cityCode,
|
||||
provinceCode,
|
||||
detailsList,
|
||||
})
|
||||
|
||||
addOrEditForm.value.typeIds = addOrEditForm.value.typeIds.map((e: any) => {
|
||||
return (e *= 1)
|
||||
detailsList.forEach((e: any) => {
|
||||
e.fileInfoTempList = []
|
||||
e.typeIds = e.typeIds.map((j: any) => {
|
||||
return (j *= 1)
|
||||
})
|
||||
|
||||
})
|
||||
Promise.all([onProvinceChange(provinceCode), onCityChange(cityCode)]).then(() => {
|
||||
addOrEditDialogVisible.value = true
|
||||
})
|
||||
}
|
||||
|
||||
// 提交
|
||||
|
|
@ -789,15 +772,12 @@ const onSubmit = (type: boolean) => {
|
|||
addOrEditFormRef.value.validate(async (valid: any) => {
|
||||
if (valid) {
|
||||
addOrEditForm.value.isSubmit = type
|
||||
addOrEditForm.value.typeId =
|
||||
addOrEditForm.value.typeIds[addOrEditForm.value.typeIds.length - 1]
|
||||
// addOrEditForm.value.typeId =
|
||||
// addOrEditForm.value.typeIds[addOrEditForm.value.typeIds.length - 1]
|
||||
addOrEditForm.value.fileInfoList.push(...fileListTemp.value)
|
||||
addOrEditForm.value.maStatus == 0
|
||||
? (addOrEditForm.value.maStatus = 1)
|
||||
: addOrEditForm.value.maStatus
|
||||
|
||||
let isDemand = false
|
||||
for (let index = 0; index < addOrEditDemandFormList.value.length; index++) {
|
||||
for (let index = 0; index < addOrEditForm.value.detailsList.length; index++) {
|
||||
try {
|
||||
const valid = await new Promise((resolve) => {
|
||||
addOrEditDemandFormRefList.value[index].validate((valid: any) => {
|
||||
|
|
@ -813,6 +793,16 @@ const onSubmit = (type: boolean) => {
|
|||
}
|
||||
if (isDemand) return
|
||||
|
||||
addOrEditForm.value.fileInfoList = [
|
||||
...addOrEditForm.value.fileInfoList,
|
||||
...addOrEditForm.value.fileInfoTempList,
|
||||
]
|
||||
addOrEditForm.value.detailsList.forEach((e: any) => {
|
||||
e.fileInfoList = [...e.fileInfoList, ...e.fileInfoTempList]
|
||||
e.typeId = e.typeIds[e.typeIds.length - 1]
|
||||
})
|
||||
// addOrEditForm.value.detailsList = addOrEditDemandFormList.value
|
||||
|
||||
const SUBMIT_API = isRepublish.value ? addLeaseInfoApi : editLeaseInfoApi
|
||||
const res: any = await SUBMIT_API(addOrEditForm.value)
|
||||
if (res.code === 200) {
|
||||
|
|
@ -830,15 +820,26 @@ const onSubmit = (type: boolean) => {
|
|||
|
||||
// 自定义事件
|
||||
const onFileChange = (fileList: any) => {
|
||||
fileListTemp.value = []
|
||||
fileListTemp.value = fileList.map((e: any) => {
|
||||
addOrEditForm.value.fileInfoTempList = []
|
||||
const fileListTemp = fileList.map((e: any) => {
|
||||
return {
|
||||
fileName: e.name,
|
||||
fileUrl: e.url,
|
||||
}
|
||||
})
|
||||
|
||||
// addOrEditForm.value.fileInfoList.push(...fileListTemp.value)
|
||||
addOrEditForm.value.fileInfoTempList.push(...fileListTemp)
|
||||
}
|
||||
|
||||
const onFileChangeInDetails = (fileList: any, index: number) => {
|
||||
addOrEditForm.value.detailsList[index].fileInfoTempList = []
|
||||
const fileListTemp = fileList.map((e: any) => {
|
||||
return {
|
||||
fileName: e.name,
|
||||
fileUrl: e.url,
|
||||
}
|
||||
})
|
||||
addOrEditForm.value.detailsList[index].fileInfoTempList.push(...fileListTemp)
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
|
|
@ -854,6 +855,9 @@ const onClose = () => {
|
|||
const onDeleteImg = (index: any) => {
|
||||
addOrEditForm.value.fileInfoList.splice(index, 1)
|
||||
}
|
||||
const onDeleteImgInDetails = (index: any, j: any) => {
|
||||
addOrEditForm.value.detailsList[index].fileInfoList.splice(j, 1)
|
||||
}
|
||||
|
||||
const minLimit = computed(() => {
|
||||
return addOrEditForm.value.fileInfoList.length
|
||||
|
|
@ -864,16 +868,18 @@ const onChangeClass = (val: any) => {
|
|||
}
|
||||
const onAddDemandInfo = () => {
|
||||
const newId = Date.now()
|
||||
addOrEditDemandFormList.value.push({
|
||||
addOrEditForm.value.detailsList.push({
|
||||
newId,
|
||||
typeIds: [],
|
||||
typeId: '',
|
||||
leaseNum: 1,
|
||||
fileInfoList: [],
|
||||
fileInfoTempList: [],
|
||||
})
|
||||
}
|
||||
|
||||
const onDeleteDemand = (index: any) => {
|
||||
addOrEditDemandFormList.value.splice(index, 1)
|
||||
addOrEditForm.value.detailsList.splice(index, 1)
|
||||
addOrEditDemandFormRefList.value.splice(index, 1)
|
||||
addOrEditDemandFormRefList.value.forEach((e: any) => {
|
||||
if (e) e.clearValidate()
|
||||
|
|
@ -890,6 +896,29 @@ const onCityChange = async (id: any) => {
|
|||
}
|
||||
const onCountyChange = async (id: any) => {}
|
||||
|
||||
const onAuditing = (id: any, leaseStatus: number) => {
|
||||
ElMessageBox.confirm(`是否${leaseStatus === 1 ? '通过' : '驳回'}此次接单申请?`, '温馨提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'success',
|
||||
})
|
||||
.then(async () => {
|
||||
const res: any = await maLeaseAuditApi({
|
||||
id,
|
||||
leaseStatus,
|
||||
})
|
||||
if (res.code == 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '提交成功',
|
||||
})
|
||||
// 刷新列表
|
||||
getLeaseListData()
|
||||
}
|
||||
})
|
||||
.catch(async () => {})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getClassAndCompanyData()
|
||||
getLeaseListData()
|
||||
|
|
@ -918,8 +947,8 @@ onMounted(() => {
|
|||
align-items: center;
|
||||
|
||||
.img-items {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-right: 8px;
|
||||
position: relative;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue