冲突合并

This commit is contained in:
BianLzhaoMin 2024-11-28 10:04:51 +08:00
commit 078f56595f
6 changed files with 635 additions and 204 deletions

28
components.d.ts vendored
View File

@ -3,41 +3,15 @@
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
export {}
export { }
declare module 'vue' {
export interface GlobalComponents {
Breadcrumb: typeof import('./src/components/Breadcrumb/index.vue')['default']
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']
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']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm']
ElProgress: typeof import('element-plus/es')['ElProgress']
ElRow: typeof import('element-plus/es')['ElRow']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElUpload: typeof import('element-plus/es')['ElUpload']
EquipCard: typeof import('./src/components/equipCard.vue')['default']
EquipCardHall: typeof import('./src/components/equipCardHall/index.vue')['default']
EquipCardNew: typeof import('./src/components/equipCardNew/index.vue')['default']

5
env/.env.dev vendored
View File

@ -7,8 +7,13 @@ VITE_API_URL = '/proxyApi'
# 开发环境接口地址
# VITE_proxyTarget = 'http://10.40.92.74:8080' #盛旭
<<<<<<< HEAD
VITE_proxyTarget = 'http://localhost:18080' # 马帅
# VITE_proxyTarget = 'http://192.168.0.244:28580' # 马帅
=======
# VITE_proxyTarget = 'http://192.168.2.246:28080' # 马帅
VITE_proxyTarget = 'http://192.168.0.244:28580' # 马帅
>>>>>>> dev-sy
# VITE_proxyTarget = 'http://192.168.2.129:18080' # 马帅
# VITE_proxyTarget = 'http://10.40.92.185:9206' # 赵福海 ( 设备类型)

View File

@ -32,7 +32,7 @@ export const getCompanyListApi = () => {
// 删除接口
export const removeDeviceApi = (data: any) => {
return post('/zlpt-equip/dev/remove', data)
return post('/material-mall/dev/remove', data)
}
// 上下架(批量)

View File

@ -228,6 +228,18 @@ const routes: Array<RouteRecordRaw> = [
isLogin: true
},
},
/* 订单管理(订单详情) */
{
path: 'orderManagementInfo',
name: 'orderManagementInfo',
component: () => import('@/views/user/orderManagement/detail.vue'),
meta: {
title: '订单详情',
keepAlive: true,
AuthFlag: false,
isLogin: false
},
},
/* 订单管理(退租) */
{
path: 'rentinTermination',

View File

@ -4,12 +4,12 @@
import PagingComponent from 'components/PagingComponent/index.vue'
import uploadComponent from 'components/uploadComponent/index.vue'
import previewImg from './previewImg/index.vue'
import { ElMessage,ElMessageBox } from 'element-plus'
import { ElMessage,ElMessageBox } from 'element-plus'
import type { FormInstance } from 'element-plus'
import { ref } from 'vue'
import { ref } from 'vue'
import { useStore } from 'store/user'
const store = useStore()
import { mainStore } from 'store/main'
const store = useStore()
import { mainStore } from 'store/main'
const store2 = mainStore()
import {
getEquipmentTypeApi,//
@ -17,7 +17,7 @@
getEquipmentListApi,//
getDetailApi,//
equipmentAddApi,//
insertDraftApi,//稿
insertDraftApi,//稿
removeDeviceApi,//
updateUpDownApi//
} from 'http/api/usercenter/goodsmang'
@ -43,24 +43,24 @@
label: "name",
multiple: false,
value: "id"
})
})
//
const getTypeTreeData = async () => {
const getTypeTreeData = async () => {
const res: any = await getEquipmentTypeApi();
console.log("treeData==========", res);
deviceTypeTree.value = res.data;
deviceTypeTree.value = res.data;
}
//-change
const deviceTypeChange = (val: any) => {
console.log(val)
const deviceTypeChange = (val: any) => {
console.log(val)
if(val.length > 0) {
queryParams.value.typeId = val[3]
} else {
queryParams.value.typeId = ""
}
}
}
//
const getSelectId = (list: any,id: any) => {
const getSelectId = (list: any,id: any) => {
for (let i in list) {
if (list[i].id == id) {
//value
@ -76,29 +76,29 @@
}
}
}
/* 装备树选中数组 */
const deviceTypeList: any = ref([])
const deviceTypeList: any = ref([])
//
const dateRange: any = ref([])
/* 查询参数 */
const queryParams: any = ref({
deviceName: '',
code: '',
maStatus: '',
typeId: '',
maStatus: '',
typeId: '',
pageSize: 10,
pageNum: 1
})
const queryFormRef = ref<FormInstance>()
const total: any = ref(0)
const tableData: any = ref([])
const total: any = ref(0)
const tableData: any = ref([])
/* 查询按钮 */
const queryTableList = () => {
queryParams.value.pageNum=1
getList()
}
//
//
const resetTableList = (formEl: FormInstance | undefined) => {
if (!formEl) return
formEl.resetFields()
@ -112,7 +112,6 @@
console.log(queryParams.value.pageNum, '***9999', queryParams.value.pageSize)
const res: any = await getEquipmentListApi(queryParams.value)
console.log(res, '列表数据**--**')
total.value = res.total
tableData.value = res.rows.filter((item: any) => item !== null)
}
@ -127,11 +126,11 @@
isEditDisabled.value = true
equipmentDeploymentParams.value = {
deviceName: '',
deviceTypeList: [],
deviceTypeList: [],
deviceCount: 1,
unitName: '',
code: '',
brand: '',
unitName: '',
code: '',
brand: '',
typeId: '',
companyId: '',
productionDate: '',
@ -147,11 +146,11 @@
//
dialogFormVisibleSettlein.value = true
}
const maId: any = ref('')
//
const editRowInfo = (row: any) => {
settleinTitle.value = '装备编辑'
settleinTitle.value = '装备编辑'
getDetailData(row)
disabledForm.value = false
isEditDisabled.value = true
@ -164,22 +163,23 @@
isEditDisabled.value = false
}
//
const deleteRowInfo = async (row: any) => {
const deleteRowInfo = async (row: any) => {
ElMessageBox.confirm('是否确定删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
const res: any = removeDeviceApi([row.maId])
if (res.code === 200) {
ElMessage({
type: 'success',
message: '删除成功'
})
getList()
}
}).catch(() => {})
}
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
return removeDeviceApi([row.maId])
}).then((res) => {
if (res.code === 200) {
ElMessage({
type: 'success',
message: '删除成功'
})
getList()
}
}).catch(() => {})
}
//
const getDetailData = async(row: any) => {
console.log(row,"----row----")
@ -202,9 +202,9 @@
// )
// equipmentDeploymentParams.value.leaseScope = String(
// equipmentDeploymentParams.value.leaseScope
// )
// )
// equipmentDeploymentParams.value.groupId = Number(equipmentDeploymentParams.value.groupId)
// equipmentDeploymentParams.value.typeId = Number(equipmentDeploymentParams.value.typeId)
// equipmentDeploymentParams.value.typeId = Number(equipmentDeploymentParams.value.typeId)
// store.getprovinceList()
// store.getmarketList(row.provinceId)
// store.getareaList(row.cityId)
@ -214,8 +214,8 @@
}
const ids: any = ref([])
const ids: any = ref([])
const handleSelectionChange = (selection:any) =>{
ids.value = selection.map((item:any) => item.maId)
}
@ -233,18 +233,19 @@
maIds.push(row.maId)
}
if (maIds.length == 0){
ElMessage({type: 'error',message: '请选择要操作的数据'})
ElMessage({type: 'error',message: '请选择要操作的数据'})
return
}
const res: any = updateUpDownApi({maIds,maStatus})
if (res.code === 200) {
}
return updateUpDownApi({maIds,maStatus})
}).then((res) => {
if (res.code == 200) {
ElMessage({
type: 'success',
message: '操作成功'
})
queryTableList()
}
}).catch(() => {})
getList()
}
}).catch(() => {})
}
// //
@ -276,14 +277,14 @@
// const selDeviceTypeSunList: any = computed(() => {
// return store.deviceTypeSunList
// })
// //
// const changeProvince = (val: any) => {
// // console.log(val, '**')
// store.getmarketList(val.split(',')[0])
// // AssemblyRegisterAddress[0] = val.split(',')[1]
// }
// }
// //
// const changeMarket = (val: any) => {
// store.getareaList(val.split(',')[0])
@ -292,7 +293,7 @@
// //
// const opeChangeArea = (val: any) => {
// // AssemblyRegisterAddress[2] = val.split(',')[1]
// }
// }
// //
// const changeDeviceType = (val: any) => {
// store.getDeviceTypeSonList(val)
@ -306,13 +307,13 @@
// //
// const changeDeviceTypeSun = (val: any) => {
// // deviceType[2] = val.split(',')[1]
// }
/*
----装备弹窗-----
*/
// }
/*
----装备弹窗-----
*/
/* 查看 */
const disabledForm = ref(false)
const disabledForm = ref(false)
/* 编辑 */
const isEditDisabled = ref(false)
/* 入驻框的标题 */
@ -322,13 +323,13 @@
/*
* 商品入驻弹框参数
*/
const equipmentDeploymentParams: any = ref({
const equipmentDeploymentParams: any = ref({
deviceName: '',
deviceTypeList: [],
deviceTypeList: [],
deviceCount: 1,
unitName: '',
code: '',
brand: '',
unitName: '',
code: '',
brand: '',
typeId: '',
companyId: '',
productionDate: '',
@ -336,34 +337,34 @@
person: '',
personPhone: '',
deviceWeight: '',
})
})
//
const countDisabled = ref(false)
const countDisabled = ref(false)
//-change
const dialogTypeCascader = ref()
//-change
const dialogTypeChange = () => {
const dialogTypeChange = () => {
const deviceTypeList = dialogTypeCascader.value.getCheckedNodes()
console.log(deviceTypeList)
equipmentDeploymentParams.value.unitName = deviceTypeList[0].data.unitName
let manageType = deviceTypeList[0].data.manageType
if(manageType=='1'){//
if(manageType=='1'){//
equipmentDeploymentParams.value.deviceCount=1
countDisabled.value=false
}else if(manageType=='0'){//
}else if(manageType=='0'){//
equipmentDeploymentParams.value.deviceCount=1
countDisabled.value=true
}
}
}
//
const getCompanyList = async () => {
//
const getCompanyList = async () => {
const res: any = await getCompanyListApi()
console.log(res, '列表数据**--**')
companyDataList.value = res.data
}
console.log(res, '列表数据**--**')
companyDataList.value = res.data
}
//
const dialogFormVisibleSettlein: any = ref(false)
const ruleFormRef: any = ref(null)
const ruleFormRef: any = ref(null)
//
const equipRules = ref({
deviceName: [
@ -424,7 +425,7 @@
],
person: [
{ required: true, message: "联系人不能为空", trigger: "blur" }
],
],
personPhone: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },
{
@ -433,9 +434,9 @@
trigger: "blur"
}
],
deviceWeight: [//
deviceWeight: [//
{ required: true, message: "整机重量不能为空", trigger: "blur" }
],
],
})
//
const submitBtn = () => {
@ -445,12 +446,12 @@
equipmentDeploymentParams.value.typeId = equipmentDeploymentParams.value.deviceTypeList[3]
} else {
equipmentDeploymentParams.value.typeId = ""
}
}
if(mainFileList.value.length==0||mainFileList.value.length>6){
ElMessage({type: 'error',message: '主展示图不得少于1张不得多于6张'})
return
}
if(detailsFileList.value.length==0||detailsFileList.value.length>6){
if(detailsFileList.value.length==0||detailsFileList.value.length>6){
ElMessage({type: 'error',message: '详情展示图不得少于1张不得多于6张'})
return
}
@ -470,7 +471,7 @@
dialogFormVisibleSettlein.value = false
ruleFormRef.value.resetField()
getList()
}
}
}
})
}
@ -480,12 +481,12 @@
equipmentDeploymentParams.value.typeId = equipmentDeploymentParams.value.deviceTypeList[3]
} else {
equipmentDeploymentParams.value.typeId = ""
}
}
// if(mainFileList.value.length==0||mainFileList.value.length>6){
// ElMessage({type: 'error',message: '16'})
// return
// }
// if(detailsFileList.value.length==0||detailsFileList.value.length>6){
// if(detailsFileList.value.length==0||detailsFileList.value.length>6){
// ElMessage({type: 'error',message: '16'})
// return
// }
@ -505,7 +506,7 @@
dialogFormVisibleSettlein.value = false
ruleFormRef.value.resetField()
getList()
}
}
}
/* 关闭按钮 */
const closeDialogBtn = () => {
@ -549,20 +550,20 @@
fileUrl: val.msg
})
}
const mainFileList: any = ref([])//
const detailsFileList: any = ref([])//
const insurancePdf: any = ref([])//
const examinationPdf: any = ref([])//
const examinationPdf: any = ref([])//
//
const dialogVisible: any = ref(false)
const dialogVisible: any = ref(false)
const dialogImageUrl = ref('')
//+header
const imgUploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
const actionUrl = ref(imgUploadUrl)
const headerInfo = reactive({
Authorization: "Bearer " + store2.token
})
})
// -
const beforeUpload = (file: any) => {
if (file.size / 1024 / 1024 > 2) {
@ -580,7 +581,7 @@
type: 'error',
message: '上传文件失败!'
})
// this.$message.error({message: `!`});
// this.$message.error({message: `!`});
}
//
const handleFileSuccess = (response: any) => {
@ -590,7 +591,7 @@
fileName: response.data.name.split("/")[4],
fileUrl: response.data.url
};
console.log(obj);
console.log(obj);
mainFileList.value.push(obj)
ElMessage({
type: 'success',
@ -598,7 +599,7 @@
})
console.log(mainFileList.value)
}
}
}
//
const handleFileSuccess2 = (response: any) => {
if (response.code == 200) {
@ -607,7 +608,7 @@
fileName: response.data.name.split("/")[4],
fileUrl: response.data.url
};
console.log(obj);
console.log(obj);
detailsFileList.value.push(obj)
ElMessage({
type: 'success',
@ -615,7 +616,7 @@
})
console.log(detailsFileList.value)
}
}
}
//
const handleFileSuccess3 = (response: any) => {
if (response.code == 200) {
@ -624,13 +625,13 @@
fileName: response.data.name.split("/")[4],
fileUrl: response.data.url
};
console.log(obj);
console.log(obj);
insurancePdf.value.push(obj)
ElMessage({
type: 'success',
message: '上传成功!'
})
console.log(insurancePdf.value)
console.log(insurancePdf.value)
}
}
//
@ -641,7 +642,7 @@
fileName: response.data.name.split("/")[4],
fileUrl: response.data.url
};
console.log(obj);
console.log(obj);
examinationPdf.value.push(obj)
ElMessage({
type: 'success',
@ -654,7 +655,7 @@
const handleDownload = (file: any) => {
const windowName = file.name;
window.open(file.fileUrl, windowName);
}
}
//
const picturePreview = (file: any) => {
dialogImageUrl.value = file.fileUrl;
@ -663,9 +664,9 @@
//
const handleRemove = (list: any,index: Number) => {
list.splice(index,1)
}
}
</script>
<template>
@ -683,12 +684,12 @@
<el-option label="草稿状态" value="0"></el-option>
<el-option label="上架" value="1"></el-option>
<el-option label="下架" value="2"></el-option>
<el-option label="在租" value="3"></el-option>
<el-option label="在租" value="3"></el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item label="装备类目:" prop="deviceTypeList">
<el-cascader
v-model="deviceTypeList"
v-model="deviceTypeList"
:show-all-levels="false"
:options="deviceTypeTree"
:props="partTypeTreeProps"
@ -696,7 +697,7 @@
collapse-tags
style="width:160px"
placeholder="请选择装备类目"
ref="deviceTypeCascader"
ref="deviceTypeCascader"
@change="deviceTypeChange"
></el-cascader>
</el-form-item>
@ -720,25 +721,25 @@
</el-form>
<!-- 表格 -->
<el-table :data="tableData" style="width: auto" row-key="maId" show-overflow-tooltip max-height="400px"
<el-table :data="tableData" style="width: auto" row-key="maId" show-overflow-tooltip max-height="400px"
:header-cell-style="{background: '#3E98FF',color: '#fff'}" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"/>
<el-table-column label="序号" align="center" width="80" type="index"></el-table-column>
<el-table-column align="center" prop="deviceName" label="装备名称" />
<el-table-column align="center" prop="code" label="编码" />
<el-table-column align="center" prop="code" label="编码" />
<el-table-column align="center" prop="typeName" label="装备类目">
<template #default="{ row }">
<span>{{ row.firstName }} <span v-show="row.firstName">></span> {{ row.secondName }}<span v-show="row.secondName">></span>{{ row.thirdName }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="typeName" label="装备型号" />
<el-table-column align="center" label="装备状态" width="80px">
<template #default="{ row }">
<el-tag v-if="row.maStatus == 0" size="small" type="info">草稿状态</el-tag>
<el-tag v-if="row.maStatus == 1" size="small" type="warning"></el-tag>
<el-tag v-if="row.maStatus == 2" size="small" type="success"></el-tag>
<el-tag v-if="row.maStatus == 3" size="small" type="danger">在租</el-tag>
<el-tag v-if="row.maStatus == 1" size="small" type="warning"></el-tag>
<el-tag v-if="row.maStatus == 2" size="small" type="success"></el-tag>
<el-tag v-if="row.maStatus == 3" size="small" type="danger">在租</el-tag>
</template>
</el-table-column>
<el-table-column prop="name" label="操作" min-width="160px" align="center">
@ -748,10 +749,10 @@
编辑
</el-button>
<el-button v-if="row.maStatus == 2" size="mini" type="warning" @click="handleUpdateUpDown(row,1)">
下架
下架
</el-button>
<el-button v-if="row.maStatus == 1" size="mini" type="warning" @click="handleUpdateUpDown(row,2)">
上架
上架
</el-button>
<el-button
v-if="row.maStatus == 0 || row.maStatus == 1"
@ -760,7 +761,7 @@
@click="deleteRowInfo(row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
@ -785,15 +786,15 @@
<el-button type="primary" @click="submitBtn" v-if="!disabledForm || isEditDisabled" >
</el-button>
</el-row>
</el-row>
<div class="title">
<span class="title-sign"></span>
<span class="title-text">基本信息</span>
</div>
</div>
<el-form label-width="160" ref="ruleFormRef" :model="equipmentDeploymentParams"
:rules="equipRules" :disabled="disabledForm">
:rules="equipRules" :disabled="disabledForm">
<el-form-item label="装备名称:" prop="deviceName">
<el-input autocomplete="off" style="width: 850px" maxlength="30"
@ -810,19 +811,19 @@
collapse-tags
style="width: 350px"
placeholder="请选择装备类目"
ref="dialogTypeCascader"
ref="dialogTypeCascader"
@change="dialogTypeChange"
></el-cascader>
</el-form-item>
</el-form-item>
<el-form-item label="设备数量:" prop="deviceCount">
<el-input
@input="(v)=>(equipmentDeploymentParams.deviceCount=v.replace(/[^\d.]/g,''))"
v-model="equipmentDeploymentParams.deviceCount"
placeholder="请输入设备数量"
clearable maxlength="20"
clearable maxlength="20"
style="width: 350px;" :disabled="countDisabled"
/>
</el-form-item>
/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="装备单位:" prop="unitName">
@ -870,46 +871,46 @@
value-format="yyyy-MM-dd"
type="date" style="width: 350px;">
</el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item label="租赁价格(天/元)" prop="dayLeasePrice">
<el-input
@input="(v)=>(equipmentDeploymentParams.dayLeasePrice=v.replace(/[^\d.]/g,''))"
v-model="equipmentDeploymentParams.dayLeasePrice"
placeholder="请输入租赁价格"
clearable maxlength="20"
clearable maxlength="20"
style="width: 350px;"
/>
</el-form-item>
/>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="联系人:" prop="person">
<el-input
v-model="equipmentDeploymentParams.person"
placeholder="请输入联系人"
clearable maxlength="20"
clearable maxlength="20"
style="width: 350px;"
/>
</el-form-item>
/>
</el-form-item>
<el-form-item label="联系电话:" prop="personPhone">
<el-input
v-model="equipmentDeploymentParams.personPhone"
placeholder="请输入联系电话"
clearable maxlength="20"
clearable maxlength="20"
style="width: 350px;"
/>
</el-form-item>
/>
</el-form-item>
</el-row>
<el-row>
<el-row>
<el-form-item label="整机重量(KG)" prop="deviceWeight">
<el-input
@input="(v)=>(equipmentDeploymentParams.deviceWeight=v.replace(/[^\d.]/g,''))"
v-model="equipmentDeploymentParams.deviceWeight"
placeholder="请输入整机重量"
clearable maxlength="20"
clearable maxlength="20"
style="width: 350px;"
/>
</el-form-item>
</el-row>
/>
</el-form-item>
</el-row>
<!-- <el-form-item label="检测信息" prop="detectionList">
<uploadComponent
@ -958,7 +959,7 @@
</a>
</template>
</el-form-item>
</el-form-item>
<el-form-item label="设备图片" prop="picList">
<uploadComponent
v-if="!disabledForm && isEditDisabled"
@ -989,19 +990,19 @@
fit="cover" />
</template>
<template v-else>暂无图片</template>
</template>
</template>
</el-form-item> -->
</el-form>
<div class="title">
<span class="title-sign"></span>
<span class="title-text">装备图片</span>
</div>
</div>
<div class="uploadBox">
<div class="labelBox">
<div style="margin-left: 20px;">
<span style="color: red;">*</span>
<span style="font-size: 14px;color: #606266;font-weight: 600;">主展示图: </span>
</div>
</div>
<div style="margin-left: 20px;">
<el-upload ref="upload" :limit="6" :headers="headerInfo"
:action="actionUrl" :show-file-list="false" accept=".png, .jpg, .jpeg"
@ -1009,17 +1010,17 @@
:before-upload="beforeUpload" :on-error="uploadError"
>
<el-button icon="FolderOpened">上传文件</el-button>
</el-upload>
</el-upload>
</div>
<div style="color: #999;font-size: 12px;margin-left: 20px;">支持格式.jpg .png单个文件大小不能超过2M</div>
</div>
<div class="imgsBox">
<div class="imgsBox">
<!-- <div class="imgItem" v-if="mainFileList.length==0">
<div class="icon-list" style="left: 60px;">
<span class="imgItem__icon" >
<i class="el-icon-plus"/>
</span>
</div>
</span>
</div>
</div> -->
<div class="imgItem" v-for="(item,index) in mainFileList" :key="index">
<img class="picture-card" :src="item.fileUrl" alt="">
@ -1033,20 +1034,20 @@
<span class="imgItem__icon hide" @click="handleRemove(mainFileList,index)">
<i class="el-icon-delete"/>
</span>
</div>
</div>
<p class="file-name">{{ item.fileName }}</p>
</div>
</div>
<div class="tipBox">
*:图片排序为平台展示顺序不得少于1张不得多于6张
</div>
</div>
</div>
<div class="uploadBox">
<div class="labelBox">
<div style="margin-left: 20px;">
<span style="color: red;">*</span>
<span style="font-size: 14px;color: #606266;font-weight: 600;">详情页展示图: </span>
</div>
</div>
<div style="margin-left: 20px;">
<el-upload ref="upload" :limit="6" :headers="headerInfo"
:action="actionUrl" :show-file-list="false" accept=".png, .jpg, .jpeg"
@ -1054,7 +1055,7 @@
:before-upload="beforeUpload" :on-error="uploadError"
>
<el-button icon="FolderOpened">上传文件</el-button>
</el-upload>
</el-upload>
</div>
<div style="color: #999;font-size: 12px;margin-left: 20px;">支持格式.jpg .png单个文件大小不能超过2M</div>
</div>
@ -1071,24 +1072,24 @@
<span class="imgItem__icon hide" @click="handleRemove(detailsFileList,index)">
<i class="el-icon-delete"/>
</span>
</div>
</div>
<p class="file-name">{{ item.fileName }}</p>
</div>
</div>
<div class="tipBox">
*:图片排序为平台展示顺序不得少于1张不得多于6张
</div>
</div>
</div>
<div class="title">
<span class="title-sign"></span>
<span class="title-text">装备证书</span>
</div>
</div>
<div class="uploadBox">
<div class="labelBox">
<div style="margin-left: 20px;">
<span style="color: red;">*</span>
<span style="font-size: 14px;color: #606266;font-weight: 600;">合格证: </span>
</div>
</div>
<div style="margin-left: 20px;">
<el-upload ref="upload" :limit="6" :headers="headerInfo"
:action="actionUrl" :show-file-list="false" accept=".png, .jpg, .jpeg"
@ -1096,7 +1097,7 @@
:before-upload="beforeUpload" :on-error="uploadError"
>
<el-button icon="FolderOpened">上传文件</el-button>
</el-upload>
</el-upload>
</div>
<div style="color: #999;font-size: 12px;margin-left: 20px;">支持格式.jpg .png单个文件大小不能超过2M</div>
</div>
@ -1113,17 +1114,17 @@
<span class="imgItem__icon hide" @click="handleRemove(insurancePdf,index)">
<i class="el-icon-delete"/>
</span>
</div>
</div>
<p class="file-name">{{ item.fileName }}</p>
</div>
</div>
</div>
</div>
<div class="uploadBox">
<div class="labelBox">
<div style="margin-left: 20px;">
<span style="color: red;">*</span>
<span style="font-size: 14px;color: #606266;font-weight: 600;">检测证明: </span>
</div>
</div>
<div style="margin-left: 20px;">
<el-upload ref="upload" :limit="6" :headers="headerInfo"
:action="actionUrl" :show-file-list="false" accept=".png, .jpg, .jpeg"
@ -1131,7 +1132,7 @@
:before-upload="beforeUpload" :on-error="uploadError"
>
<el-button icon="FolderOpened">上传文件</el-button>
</el-upload>
</el-upload>
</div>
<div style="color: #999;font-size: 12px;margin-left: 20px;">支持格式.jpg .png单个文件大小不能超过2M</div>
</div>
@ -1148,12 +1149,12 @@
<span class="imgItem__icon hide" @click="handleRemove(examinationPdf,index)">
<i class="el-icon-delete"/>
</span>
</div>
</div>
<p class="file-name">{{ item.fileName }}</p>
</div>
</div>
</div>
</div>
<!-- <template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="closeDialogBtn"> </el-button>
@ -1207,14 +1208,14 @@
width: auto;
height: auto;
display: flex;
align-items: center;
align-items: center;
margin-bottom: 30px;
margin-left: 20px;
.imgItem{
width: 160px;
height: 160px;
margin-right: 40px;
margin-right: 40px;
border: 1px dashed #bbb;
position: relative;
.picture-card{
@ -1236,14 +1237,14 @@
font-size: 10px;
}
}
.hide{
display: none;
}
}
.imgItem:hover .hide{
display: block;
}
}
.tipBox{
color: red;

View File

@ -119,9 +119,9 @@ const clickConfirmReceipt = (row: any) => {
}
const settleinTitle = ref('')
/* 编辑 */
/* 编辑 **********/
const isEditDisabled = ref(false)
//
// 退
const dialogFormVisibleSettlein: any = ref(false)
const equipmentDeploymentParams: any = ref({
/* 设备名称 */
@ -269,9 +269,128 @@ const handleViewBack = () => {
insureList: [],
picList: [],
}
//
dialogFormVisibleSettlein.value = true
}
const settlemoneyTitle = ref('')
const moneyParams1: any = ref({
/* 设备名称 */
deviceName: '',
deviceTypeList: [],
deviceCount: 1,
unitName: '',
})
const moneyParams2: any = ref({
/* 设备名称 */
deviceName: '',
deviceTypeList: [],
deviceCount: 1,
unitName: '',
})
const moneyParams3: any = ref({
/* 设备名称 */
deviceName: '',
deviceTypeList: [],
deviceCount: 1,
unitName: '',
})
const tableData: any = ref([
{
name1:'测试1',
name2:'测试1-1',
name3:'测试1-2',
jy1:'外观1-1',
jy2:'故障1-2',
jy3:'外观1-2',
jy4:'故障1-2',
jy5:'外观1-3',
jy6:'故障1-3',
jy7:'',
jy8:'',
remark:'备注1',
},
{
name1:'测试2',
name2:'测试2-1',
name3:'测试2-2',
jy1:'外观2-1',
jy2:'故障2-2',
jy3:'外观2-2',
jy4:'故障2-2',
jy5:'外观2-3',
jy6:'故障2-3',
jy7:'',
jy8:'',
remark:'备注2',
}
])
const partItems1: any = ref([{}])
const partItems2: any = ref([{}])
const partItems3: any = ref([{}])
//
const dialogFormVisibleSettlemoney: any = ref(false)
//
const handleViewMoney = () => {
settlemoneyTitle.value = '费用结算'
moneyParams1.value = {
/* 设备状态 */
maStatus: 15,
detectionList: [],
insureList: [],
picList: []
}
moneyParams2.value = {
/* 设备状态 */
maStatus: 15,
detectionList: [],
insureList: [],
picList: []
}
moneyParams3.value = {
/* 设备状态 */
maStatus: 15,
detectionList: [],
insureList: [],
picList: []
}
// 退
dialogFormVisibleSettlemoney.value = true
}
//
const addPartItem1=()=> {
partItems1.value.push({ partType: "", num: "", isCharge: "" });
}
const removePartItem1 =(index:number)=> {
if (partItems1.value.length > 1) {
partItems1.value.splice(index, 1);
}
}
//
const addPartItem2=()=> {
partItems2.value.push({ partType: "", num: "", isCharge: "" });
}
const removePartItem2 =(index:number)=> {
if (partItems2.value.length > 1) {
partItems2.value.splice(index, 1);
}
}
//
//
//
//
const addPartItem3=()=> {
partItems3.value.push({ partType: "", num: "", isCharge: "" });
}
const removePartItem3 =(index:number)=> {
if (partItems3.value.length > 1) {
partItems3.value.splice(index, 1);
}
}
</script>
<template>
@ -623,7 +742,7 @@ const handleViewBack = () => {
退租检修
</el-button>
<el-button
@click="handleViewOrder(j)"
@click="handleViewMoney(j)"
type="text"
size="mini"
style="color: #blue; font-weight: bold"
@ -904,6 +1023,326 @@ const handleViewBack = () => {
</template>
</el-dialog>
</div>
<!-- 费用结算弹框 -->
<el-dialog
v-model="dialogFormVisibleSettlemoney"
:title="settlemoneyTitle"
width="60%"
align-center
:close-on-click-modal="false"
>
<div style="height: 80px">
<div
class="info"
style="margin-top: 5px; margin-bottom: 8px; display: flex; flex-wrap: wrap"
>
<div
class="item"
style="
width: 30%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 16px;
margin-left: 40px;
"
>
<span>订单编号10000212135656</span>
</div>
<div
class="item"
style="width: 30%; flex-shrink: 0; margin-bottom: 5px; font-size: 16px"
>
<span>装备套数2</span>
</div>
<div
class="item"
style="width: 30%; flex-shrink: 0; margin-bottom: 5px; font-size: 16px"
>
<span>退租时间2024-10-10 10:00:00</span>
</div>
</div>
<div class="info" style="margin-top: 5px; display: flex; flex-wrap: wrap">
<div
class="item"
style="
width: 30%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 16px;
margin-left: 40px;
"
>
<span>结算单位安徽送变电公司</span>
</div>
<div
class="item"
style="width: 30%; flex-shrink: 0; margin-bottom: 5px; font-size: 16px"
>
<span>租赁天数30{{ '/天' }}</span>
</div>
<div
class="item"
style="width: 30%; flex-shrink: 0; margin-bottom: 5px; font-size: 16px"
>
<span>租赁费用()1800</span>
</div>
</div>
<div class="title">
<span class="title-sign"></span>
<span class="title-text">退租检测信息</span>
</div>
</div>
<!-- 表格 -->
<el-table
:data="tableData"
class="table"
style="margin-left: 50px; width: 1100px"
row-key="id"
show-overflow-tooltip
:header-cell-style="{ background: 'white', color: 'black' }"
>
<el-table-column label="序号" align="center" width="80" type="index"></el-table-column>
<el-table-column align="center" prop="name1" label="机具名称" />
<el-table-column align="center" prop="name2" label="规格型号" />
<el-table-column align="center" prop="name3" label="装备编码" />
<el-table-column align="center" prop="typeName" label="检验内容">
<el-table-column label="外观检验" align="center" prop="jy1" />
<el-table-column label="故障检验" align="center" prop="jy2" />
</el-table-column>
<el-table-column align="center" prop="typeName" label="维修内容">
<el-table-column label="外观检验" align="center" prop="jy3" />
<el-table-column label="故障检验" align="center" prop="jy4" />
</el-table-column>
<el-table-column align="center" prop="typeName" label="金额">
<el-table-column label="外观检验" align="center" prop="jy5" />
<el-table-column label="故障检验" align="center" prop="jy6" />
</el-table-column>
<el-table-column align="center" prop="typeName" label="附件">
<el-table-column label="外观检验" align="center" prop="jy7" />
<el-table-column label="故障检验" align="center" prop="jy8" />
</el-table-column>
<el-table-column align="center" label="备注" prop="remark" width="80px">
</el-table-column>
</el-table>
<div class="title">
<span class="title-sign"></span>
<span class="title-text">费用结算</span>
</div>
<div>
<span style="color: #ff9900; margin-left: 100px"> </span>
<span class="title-text">维修费用</span>
</div>
<el-form label-width="240" ref="ruleFormRef2" :model="moneyParams1">
<div v-for="(item, index) in partItems1" :key="index" class="dynamic-item">
<div
style="
margin-top: 10px;
margin-left: 180px;
margin-bottom: 5px;
font-size: 18px;
"
>
设备{{ index + 1 }}
</div>
<el-row>
<el-form-item label="关联装备" prop="partType">
<el-select
v-model="item.device"
placeholder="请选择"
clearable
style="width: 300px"
>
<el-option label="设备1" value="0"></el-option>
<el-option label="设备2" value="1"></el-option>
<el-option label="设备3" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="维修数量" prop="partNum">
<el-input
v-model="item.partNum"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="维修费用" prop="partNum">
<el-input
v-model="item.partNum"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
<el-form-item label="维修类型" prop="isCharge">
<el-select
v-model="item.isCharge"
placeholder="请选择"
filterable
clearable
style="width: 300px"
>
<el-option label="维修类型1" value="0"></el-option>
<el-option label="维修类型2" value="1"></el-option>
<el-option label="维修类型3" value="2"></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<div style="margin-left: 130px">
<el-button @click="addPartItem1" type="success"> 增加维修设备</el-button>
<el-button @click="removePartItem1(index)" v-if="index != 0" type="danger">
删除维修设备</el-button
>
</div>
</el-row>
</div>
</el-form>
<div style="margin-top: 10px">
<span style="color: #ff9900; margin-left: 100px"> </span>
<span class="title-text">报废费用</span>
</div>
<el-form label-width="240" ref="ruleFormRef3" :model="moneyParams2">
<div v-for="(item, index) in partItems2" :key="index" class="dynamic-item">
<div
style="
margin-top: 10px;
margin-left: 180px;
margin-bottom: 5px;
font-size: 18px;
"
>
设备{{ index + 1 }}
</div>
<el-row>
<el-form-item label="关联装备" prop="partType">
<el-select
v-model="item.device"
placeholder="请选择"
clearable
style="width: 300px"
>
<el-option label="设备1" value="0"></el-option>
<el-option label="设备2" value="1"></el-option>
<el-option label="设备3" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="报废数量" prop="partNum">
<el-input
v-model="item.partNum"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="报废费用" prop="partNum">
<el-input
v-model="item.partNum"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
<el-form-item label="报废原因" prop="isCharge">
<el-input
v-model="item.isCharg"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
</el-row>
<el-row>
<div style="margin-left: 130px">
<el-button @click="addPartItem2" type="success"> 增加报废设备</el-button>
<el-button @click="removePartItem2(index)" v-if="index != 0" type="danger">
删除报废设备</el-button
>
</div>
</el-row>
</div>
</el-form>
<div style="margin-top: 10px">
<span style="color: #ff9900; margin-left: 100px"> </span>
<span class="title-text">丢失费用</span>
</div>
<el-form label-width="240" ref="ruleFormRef4" :model="moneyParams3">
<div v-for="(item, index) in partItems3" :key="index" class="dynamic-item">
<div
style="
margin-top: 10px;
margin-left: 180px;
margin-bottom: 5px;
font-size: 18px;
"
>
设备{{ index + 1 }}
</div>
<el-row>
<el-form-item label="关联装备" prop="partType">
<el-select
v-model="item.device"
placeholder="请选择"
clearable
style="width: 300px"
>
<el-option label="设备1" value="0"></el-option>
<el-option label="设备2" value="1"></el-option>
<el-option label="设备3" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="丢失数量" prop="partNum">
<el-input
v-model="item.partNum"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="丢失费用" prop="partNum">
<el-input
v-model="item.partNum"
placeholder="请输入"
maxlength="20"
style="width: 300px"
>
</el-input>
</el-form-item>
</el-row>
<el-row>
<div style="margin-left: 130px">
<el-button @click="addPartItem3" type="success"> 增加丢失设备</el-button>
<el-button @click="removePartItem3(index)" v-if="index != 0" type="danger">
删除丢失设备</el-button
>
</div>
</el-row>
</div>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="closeDialogBtn"> </el-button>
<el-button @click="submitBtn" type="success"> 保存 </el-button>
</span>
</template>
</el-dialog>
</template>
<style lang="scss" scoped>