This commit is contained in:
bb_pan 2025-06-02 09:54:33 +08:00
parent 7f3864ca30
commit f1ed58f691
11 changed files with 243 additions and 22 deletions

View File

@ -367,7 +367,7 @@ const routes: Array<RouteRecordRaw> = [
name: 'quality-manage',
component: () => import('views/user/lessor/quality-manage/index.vue'),
meta: {
title: '质检管理',
title: '装备维保',
keepAlive: true,
AuthFlag: false,
isLogin: true

View File

@ -15,7 +15,7 @@ onMounted(() => {})
</el-config-provider>
</div>
</div>
<FooterInfo />
<!-- <FooterInfo /> -->
</template>
<style scoped lang="scss">

View File

@ -199,7 +199,7 @@
<div class="protocol-handle" v-if="cardList.length > 0">
<el-row style="margin: 15px 0">
<el-col :span="24">
<el-col :span="22">
<el-collapse v-model="activeNames">
<el-collapse-item :title="addressTitle" name="1">
<template v-if="addressList.length > 0">
@ -232,6 +232,15 @@
</el-collapse-item>
</el-collapse>
</el-col>
<el-col :span="2" style="display: flex; justify-content: flex-end">
<el-button
type="primary"
size="small"
style="margin-top: 10px"
@click="handleAddress"
>新增地址</el-button
>
</el-col>
</el-row>
<el-row style="display: flex; align-items: center">
<el-col :span="16">
@ -262,8 +271,9 @@
<div style="text-align: right">
<el-button
size="small"
type="primary"
@click="onCartSubmit"
style="padding: 12px 24px; background-color: #1abc9c; color: #fff"
style="padding: 12px 24px"
>提交</el-button
>
</div>
@ -274,7 +284,7 @@
<Empty v-if="cardList.length == 0" />
</div>
<FooterInfo />
<!-- <FooterInfo /> -->
<!-- 租赁协议 -->
<el-dialog
@ -299,6 +309,104 @@
</div>
<div id="mmm" style="height: 600px"></div>
</el-dialog>
<el-dialog
width="40%"
align-center
destroy-on-close
title="新增收货地址"
v-model="addOrEditDialogVisible"
>
<el-form
label-width="auto"
label-position="right"
ref="addOrEditFormRef"
:model="addOrEditForm"
:rules="addOrEditFormRules"
>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="所在省" prop="provinceCode">
<el-select
clearable
style="width: 95%"
placeholder="请选择省"
v-model="addOrEditForm.provinceCode"
@change="onProvinceChange($event)"
>
<el-option
:key="item.areaId"
:value="item.areaCode * 1"
:label="item.areaName"
v-for="item in areaList"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="cityCode" label="所在市">
<el-select
clearable
style="width: 95%"
placeholder="请选择市"
v-model="addOrEditForm.cityCode"
@change="onCityChange($event)"
>
<el-option
:key="item.areaId"
:value="item.areaCode * 1"
:label="item.areaName"
v-for="item in areaCityList"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="areaCode" label="所在区/县">
<el-select
clearable
style="width: 95%"
placeholder="请选择区/县"
v-model="addOrEditForm.areaCode"
@change="onCountyChange($event)"
>
<el-option
:key="item.areaId"
:value="item.areaCode * 1"
:label="item.areaName"
v-for="item in areaCountyList"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="address" label="详细地址">
<el-input
style="width: 95%"
clearable
placeholder="请输入详细地址"
v-model="addOrEditForm.address"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button
type="primary"
class="primary-lease"
@click="addOrEditDialogVisible = false"
>取消</el-button
>
<el-button class="primary-lease" type="primary" @click="onSubmit">
提交
</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
@ -314,8 +422,8 @@ import {
deleteCartByIdApi,
getBookCarAgreementApi,
} from 'http/api/cart/index'
import { getAddressListApi } from 'http/api/address-manage/index'
import { getAreaApi } from 'http/api/home'
import { getAddressListApi, addAddressInfoApi } from 'http/api/address-manage/index'
import moment, { max } from 'moment'
import { InfoFilled } from '@element-plus/icons-vue'
import CustomDatePickerButton from './components/date-picker-button.vue'
@ -334,6 +442,23 @@ const bookCarAgreement = ref('')
const addressTitle = ref('请选择收货地址')
const activeNames = ref('')
const addressList = ref<any>([])
const addOrEditDialogVisible = ref(false)
const addOrEditForm = ref<any>({
areaCode: '', //
cityCode: '', //
provinceCode: '', //
address: '', //
})
const addOrEditFormRef = ref<any>(null)
const addOrEditFormRules = reactive({
areaCode: [{ required: true, message: '请选择项目所在区/县', trigger: 'change' }],
cityCode: [{ required: true, message: '请选择项目所在市', trigger: 'change' }],
provinceCode: [{ required: true, message: '请选择项目所在省', trigger: 'change' }],
address: [{ required: true, message: '请输入项目详细地址', trigger: 'blur' }],
})
const areaList = ref<any>([]) //
const areaCityList = ref<any>([]) //
const areaCountyList = ref<any>([]) // /
const getBookCarDetailsData = async () => {
const res: any = await getBookCarDetailsApi()
@ -370,6 +495,59 @@ onMounted(() => {
// item.days = moment(e[1]).diff(e[0], 'day')
// }
// }
const handleAddress = () => {
addOrEditDialogVisible.value = true
getAreaData()
nextTick(() => {
addOrEditFormRef.value.resetFields()
})
}
const getAreaData = async () => {
try {
const res: any = await getAreaApi(0)
areaList.value = res.data
} catch (error) {
console.log('🚀 ~ getAreaData ~ error:', error)
}
}
const onProvinceChange = async (id: any) => {
try {
const res: any = await getAreaApi(id)
areaCityList.value = res.data
} catch (error) {
console.log('🚀 ~ onProvinceChange ~ error:', error)
}
}
const onCityChange = async (id: any) => {
try {
const res: any = await getAreaApi(id)
areaCountyList.value = res.data
} catch (error) {
console.log('🚀 ~ onCityChange ~ error:', error)
}
}
const onCountyChange = async (id: any) => {}
//
const onSubmit = () => {
addOrEditFormRef.value.validate(async (valid: any) => {
if (valid) {
try {
const res: any = await addAddressInfoApi(addOrEditForm.value)
if (res.code === 200) {
ElMessage({
type: 'success',
message: '提交成功',
})
addOrEditDialogVisible.value = false
getReceiptGoodsAddress()
}
} catch (error) {
console.log('🚀 ~ addOrEditFormRef.value.validate ~ error:', error)
}
}
})
}
const onLeaseDateChange = (value: any, companyIndex: number, goodsIndex: number) => {
if (!value) {
cardList.value[companyIndex].devInfoVoList[goodsIndex].rentBeginTime = ''
@ -959,4 +1137,14 @@ getReceiptGoodsAddress()
text-decoration: underline;
cursor: pointer;
}
:deep(.el-button--primary) {
background-color: #3cb4a6 !important;
border-color: #3cb4a6 !important;
}
:deep(.el-button--primary:hover),
:deep(.el-button--primary:focus),
:deep(.el-button--primary:active) {
background-color: #2fa18f !important;
border-color: #2fa18f !important;
}
</style>

View File

@ -203,7 +203,7 @@
</div>
</div>
</div>
<FooterInfo />
<!-- <FooterInfo /> -->
</template>
<script setup lang="ts">

View File

@ -35,7 +35,7 @@
active: val.isChecked,
}"
>
<span style="color: #333">{{ val.name }}</span>
<span>{{ val.name }}</span>
<!-- <span v-else>
{{ val.name }}
{{
@ -810,7 +810,7 @@ const onHandleDetails = (id: number | string) => {
padding: 2px 16px;
margin-right: 15px;
cursor: pointer;
color: #939393;
color: #333;
// font-size: 15px;
font-size: 17px;
line-height: 25px;
@ -918,4 +918,14 @@ const onHandleDetails = (id: number | string) => {
margin-right: 6px;
}
}
:deep(.el-button--primary) {
background-color: #3cb4a6 !important;
border-color: #3cb4a6 !important;
}
:deep(.el-button--primary:hover),
:deep(.el-button--primary:focus),
:deep(.el-button--primary:active) {
background-color: #2fa18f !important;
border-color: #2fa18f !important;
}
</style>

View File

@ -307,8 +307,16 @@ onMounted(async () => {
class="item-nav"
@click="onSharedHallByCompany(item.companyId, item.companyName)"
>
{{ item.companyName }}
{{ item.maCount ? `(${item.maCount})` : '(0)' }}
<div
style="
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
{{ item.companyName }}
</div>
<div>{{ item.maCount ? `(${item.maCount})` : '(0)' }}</div>
</li>
</div>
</template>
@ -523,6 +531,7 @@ onMounted(async () => {
width: 100%;
text-align: center;
.item-nav {
width: calc(100% - 50px);
// text-align: left;
// padding-left: 50px;
display: inline-block;

View File

@ -79,7 +79,7 @@
<div class="message-send">
<el-input
v-model="sendParams.messageContent"
style="width: 88%; margin-right: 16px"
style="width: 88%; margin-right: 16px;border-color: #00a288"
:autosize="{ minRows: 2, maxRows: 30 }"
type="textarea"
/>
@ -95,7 +95,7 @@
</div>
</div>
<FooterInfo />
<!-- <FooterInfo /> -->
</div>
</template>
@ -362,4 +362,8 @@ onUnmounted(() => {
}
}
}
:deep .el-textarea__inner:focus {
border-color: #00a89c;
box-shadow: 0 0 0 1px #00a288 !important;
}
</style>

View File

@ -223,7 +223,7 @@
</el-row>
</div>
</div>
<FooterInfo />
<!-- <FooterInfo /> -->
<!-- 租赁协议 -->
<el-dialog

View File

@ -1713,7 +1713,7 @@ const handleDel = (index: any) => {
<el-dialog
v-model="dialogFormVisibleSettlein"
:title="settleinTitle"
width="65%"
width="55%"
destroy-on-close
class="centered-dialog"
:close-on-click-modal="false"
@ -2787,10 +2787,11 @@ const handleDel = (index: any) => {
flex-direction: column !important;
margin: 0 !important;
position: absolute !important;
top: 50% !important;
top: 5vh !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
max-height: 100vh !important;
transform: translate(-50%, 0%) !important;
/* max-height: 100vh !important; */
height: 90vh;
.el-dialog__body {
flex: 1;
overflow-y: scroll !important;
@ -2803,4 +2804,14 @@ const handleDel = (index: any) => {
}
}
}
:deep(.el-button--primary) {
background-color: #3cb4a6 !important;
border-color: #3cb4a6 !important;
}
:deep(.el-button--primary:hover),
:deep(.el-button--primary:focus),
:deep(.el-button--primary:active) {
background-color: #2fa18f !important;
border-color: #2fa18f !important;
}
</style>

View File

@ -57,7 +57,7 @@ const lessorMenus: MenuItem[] = [
{ title: '装备管理', name: 'goodsManagement', permission: ['1'] },
{ title: '出租订单', name: 'orderManagementCz', permission: ['1'] },
{ title: '接单管理', name: 'accept-orders', permission: ['1'] },
{ title: '质检管理', name: 'quality-manage', permission: ['1'] },
{ title: '装备维保', name: 'quality-manage', permission: ['1'] },
{ title: '合同管理', name: 'contract-manage', permission: ['1'] },
{ title: '后台管理', name: 'admin', permission: ['1'] },
]

View File

@ -1,5 +1,5 @@
<template>
<!-- 质检管理 -->
<!-- 装备维保 -->
<div class="app-container-content">
<el-form
:inline="true"
@ -90,7 +90,6 @@
<!-- 表格 -->
<el-table
border
:data="qualityLis"
show-overflow-tooltip
:header-cell-style="{