合并冲突

This commit is contained in:
13218645326 2023-12-08 15:09:00 +08:00
commit ccd9f60a79
11 changed files with 467 additions and 322 deletions

13
components.d.ts vendored
View File

@ -15,30 +15,19 @@ declare module 'vue' {
ElCol: typeof import('element-plus/es')['ElCol'] ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
>>>>>>> dev-songyang
ElDialog: typeof import('element-plus/es')['ElDialog'] ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider'] ElDivider: typeof import('element-plus/es')['ElDivider']
ElEmpty: typeof import('element-plus/es')['ElEmpty']
ElForm: typeof import('element-plus/es')['ElForm'] ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage'] ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput']
ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElPageHeader: typeof import('element-plus/es')['ElPageHeader'] ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
ElPagination: typeof import('element-plus/es')['ElPagination']
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']
ElTable: typeof import('element-plus/es')['ElTable'] ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline'] ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem'] ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElUpload: typeof import('element-plus/es')['ElUpload']
EquipCard: typeof import('./src/components/equipCard.vue')['default'] EquipCard: typeof import('./src/components/equipCard.vue')['default']
EquipDetailTable: typeof import('./src/components/equipDetailTable.vue')['default'] EquipDetailTable: typeof import('./src/components/equipDetailTable.vue')['default']
FooterInfo: typeof import('./src/components/FooterInfo/index.vue')['default'] FooterInfo: typeof import('./src/components/FooterInfo/index.vue')['default']

5
env/.env.serve1 vendored
View File

@ -7,9 +7,10 @@ VITE_API_URL = '/proxyApi'
# 开发环境接口地址 # 开发环境接口地址
VITE_proxyTarget = 'http://10.40.92.66:9205' # 盛旭 VITE_proxyTarget = 'http://10.40.92.74:8080' # 盛旭
# VITE_proxyTarget = 'http://10.40.92.186:8080' # 福海
VITE_token = 'eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6ImMyN2M5N2Y5LWQwOGItNDJlNy05N2MzLTYwMDVmODVmNmVhZiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.KNJdSL3g7tjju4OxkUQyBWHBTiuBo5bZFtDWkbZVmm7iR9hA06OS5FSI1_9kb4jPNjE6vc7MGkH4GhQJsIwHnA' VITE_token = 'eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6ImMyN2M5N2Y5LWQwOGItNDJlNy05N2MzLTYwMDVmODVmNmVhZiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.KNJdSL3g7tjju4OxkUQyBWHBTiuBo5bZFtDWkbZVmm7iR9hA06OS5FSI1_9kb4jPNjE6vc7MGkH4GhQJsIwHnA'
VITE_LocalFlag = true VITE_LocalFlag = 0

View File

@ -14,6 +14,7 @@
:on-exceed="handleExceed" :on-exceed="handleExceed"
:file-list="props.fileList" :file-list="props.fileList"
:disabled="props.disabledFlag" :disabled="props.disabledFlag"
:on-change="changeFileFn"
:on-remove="(file, fileList) => removeFile(file, fileList)" :on-remove="(file, fileList) => removeFile(file, fileList)"
:on-preview="(file) => preview(file)" :on-preview="(file) => preview(file)"
:on-progress="(event, file, fileList) => onProgressFn(event, file, fileList)" :on-progress="(event, file, fileList) => onProgressFn(event, file, fileList)"
@ -30,6 +31,7 @@
import { ref, nextTick } from 'vue' import { ref, nextTick } from 'vue'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { Base64 } from 'js-base64' import { Base64 } from 'js-base64'
const props = defineProps({ const props = defineProps({
actionUrl: { actionUrl: {
// //
@ -91,6 +93,7 @@
default: 'picture' default: 'picture'
}, },
extraData: {}, // name extraData: {}, // name
/* /*
{ {
name:'12321' name:'12321'
@ -123,6 +126,10 @@
// //
type: Boolean, type: Boolean,
default: false default: false
},
scuccesCallback:{
type:Function,
default:()=>{}
} }
}) })
// office // office
@ -143,6 +150,7 @@
url: response.data, url: response.data,
name: file.name name: file.name
}) })
} else { } else {
ElMessage({ ElMessage({
type: 'warning', type: 'warning',
@ -231,6 +239,9 @@
}) })
} }
} }
const changeFileFn =(ev:any)=>{
props.scuccesCallback(ev)
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -1,5 +1,5 @@
import { get, post } from '../../index' import { get, post } from '../../index'
export const getGoodsClassListApi = () => { export const getGoodsClassListApi = () => {
return get('/maType/getEquipmentType', {}) return get('/zlpt-order/maType/getEquipmentType', {})
} }

View File

@ -1,15 +1,34 @@
// 订单详情 // 订单详情
import { get, post } from '../../index' import { get, post, put } from '../../index'
// 申请企业信息认证接口 // 订单相亲接口
export const apiOrderDetails = (id: any) => { export const apiOrderDetails = (id: any) => {
let urlStr = `/details/${id}` // let urlStr = `/zlpt-order/details/${id}`
let urlStr = `/zlpt-order/info/${id}`
return get(urlStr, {}) return get(urlStr, {})
} }
// 获取步骤列表
export const apiOrderInfoList = (params: any) => { export const apiOrderInfoList = (params: any) => {
let urlStr = `/info/list/` let urlStr = `/zlpt-order/info/list/`
return get(urlStr, params) return get(urlStr, params)
} }
// 订单详情
export const apiOrderInfoDetails = (params: any) => {
let urlStr = `/zlpt-order/info/${params}`
return get(urlStr, {})
}
// 更新订单信息
export const apiUpdateOrderInfo = (params: any) => {
let urlStr = `/zlpt-order/info/`
return put(urlStr, params)
}
// 更新订单信息 拒绝
export const apiOrderReject = (params: any) => {
let urlStr = `/zlpt-order/info/reject`
return put(urlStr, params)
}

View File

@ -2,7 +2,8 @@ export const useStore = defineStore('main', {
state: () => { state: () => {
return { return {
loadingFlag: false, //loading控制, loadingFlag: false, //loading控制,
token: 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6ImMyN2M5N2Y5LWQwOGItNDJlNy05N2MzLTYwMDVmODVmNmVhZiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.KNJdSL3g7tjju4OxkUQyBWHBTiuBo5bZFtDWkbZVmm7iR9hA06OS5FSI1_9kb4jPNjE6vc7MGkH4GhQJsIwHnA' token: ""
// eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjQ1MzIwY2M3LTE0MDYtNDAwNy1iMTdhLTM3OTQ3ZmUxMjc2ZiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.XqWKkIRKVADdhGzNiOPNktmLJsv7bJCRZLDaSMJQALjhSyUBDTRGPE2KBWmb4qx3zV4fbsNGBHUODem1A7MEZA
} }
}, },
getters: {}, getters: {},
@ -14,6 +15,7 @@ export const useStore = defineStore('main', {
this.loadingFlag = false this.loadingFlag = false
}, },
setToken(val: any) { setToken(val: any) {
console.log("setToken",val)
this.token = val this.token = val
} }
}, },

View File

@ -21,7 +21,7 @@ export const ElConfirmBeforeOpert = (title = '操作确认', text = "是否确
} }
export const ElMessageBoxOpert = (title = '', text = "", onfirmText = "", cancelText = "", inputValidator:any, inputErrorMessage = "",callBack: any,row:any,inputType="text") => { export const ElMessageBoxOpert = (title = '', text = "", onfirmText = "", cancelText = "", inputValidator:any, inputErrorMessage = "",callBack: any,row:any,inputType="text",confirmButtonClass="") => {
ElMessageBox.prompt(text, title, { ElMessageBox.prompt(text, title, {
draggable:true, draggable:true,
confirmButtonText: onfirmText, confirmButtonText: onfirmText,
@ -31,6 +31,7 @@ export const ElMessageBoxOpert = (title = '', text = "", onfirmText = "", cancel
}, },
inputType: inputType, inputType: inputType,
inputErrorMessage: inputErrorMessage, inputErrorMessage: inputErrorMessage,
confirmButtonClass:confirmButtonClass
}) })
.then(({ value }) => { .then(({ value }) => {
callBack(row,value) callBack(row,value)

View File

@ -12,7 +12,7 @@
const handlerLogin = async () => { const handlerLogin = async () => {
const res: any = await loginApi(loginForm.value) const res: any = await loginApi(loginForm.value)
console.log(res, '登录成功**') console.log( '登录成功**',res)
if (res.code === 200) { if (res.code === 200) {
ElMessage({ ElMessage({
showClose: true, showClose: true,

View File

@ -33,9 +33,9 @@
} }
/* 查看按钮 */ /* 查看按钮 */
const clickPreviewDetails = () => { const clickPreviewDetails = (row:any) => {
console.log('查看') console.log('查看',row)
router.push({ name: 'orderDetails' }) router.push({ name: 'orderDetails',query:{} })
} }
/* 续租按钮 */ /* 续租按钮 */
@ -84,33 +84,37 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 表格 --> <!-- 表格 -->
<el-table <el-table
:data="tableData" :data="tableData"
style="width: 100%" style="width: 100%"
:header-cell-style="{ :header-cell-style="{
background: '#3E98FF', background: '#3E98FF',
color: '#fff' color: '#fff'
}"> }">
<el-table-column align="center" prop="code" label="订单编号" /> <el-table-column align="center" prop="code" label="订单编号" />
<el-table-column align="center" prop="supplierCompany" label="供应商" /> <el-table-column align="center" prop="supplierCompany" label="供应商" />
<el-table-column align="center" prop="time" label="订单创建日期" /> <el-table-column align="center" prop="createTime" label="订单创建日期" />
<el-table-column align="center" prop="payType" label="装备类型" /> <el-table-column align="center" prop="payType" label="装备类型" />
<el-table-column align="center" prop="deviceName" label="装备名称" /> <el-table-column align="center" prop="deviceName" label="装备名称" />
<el-table-column align="center" prop="orderStatus" label="订单状态" /> <el-table-column align="center" prop="orderStatus" label="订单状态" />
<el-table-column align="center" prop="name" label="操作" width="320px"> <el-table-column align="center" prop="name" label="操作" width="320px">
<template #default="scope"> <template #default="scope">
<el-button size="small" type="primary" @click="clickPreviewDetails">查看</el-button> <el-button size="small" type="primary" @click="clickPreviewDetails(scope)">
<el-button size="small" type="danger" @click="clickRentingTermination"> 查看
退租 </el-button>
</el-button> <el-button size="small" type="danger" @click="clickRentingTermination">
<el-button size="small" type="warning" @click="clickRenewalOfLease">续租</el-button> 退租
<el-button size="small" type="success" @click="clickConfirmReceipt"> </el-button>
确认收货 <el-button size="small" type="warning" @click="clickRenewalOfLease">
</el-button> 续租
</template> </el-button>
</el-table-column> <el-button size="small" type="success" @click="clickConfirmReceipt">
</el-table> 确认收货
</el-button>
</template>
</el-table-column>
</el-table>
<PagingComponent <PagingComponent
@getList="getList" @getList="getList"

View File

@ -1,29 +1,45 @@
<template> <template>
<el-page-header @back="goBack" @click="$router.go(-1)"> <el-page-header @back="goBack" @click="$router.go(-1)">
<template #content> <template #content>
<span>详情</span>
</template> </template>
</el-page-header> </el-page-header>
<timeLineHorizontal themeColor="#2282fe" :timeLineList="timeLineList.list"></timeLineHorizontal> <timeLineHorizontal themeColor="#2282fe" :timeLineList="timeLineList.list"></timeLineHorizontal>
<el-form <el-form label-width="130px" inline="true" style="padding: 0 20px 0px 20px; width: 865px" size="small">
label-width="130px"
inline="true"
style="padding: 0 20px 0px 20px; width: 865px"
size="small">
<!-- <el-form-item label="订单编号" style="width: 600px;"> <!-- <el-form-item label="订单编号" style="width: 600px;">
xxxxx xxxxx
</el-form-item> --> </el-form-item> -->
<el-form-item label="需求单位" class="table_item">xxxxx</el-form-item> <el-form-item label="需求单位" class="table_item">
<el-form-item label="联系电话" class="table_item">xxxxx</el-form-item> {{ detailsInfo.needCompany }}
<el-form-item label="租赁时长" class="table_item">xxxxx</el-form-item>
<el-form-item label="设备进场地址:" class="table_item">xxxxx</el-form-item> </el-form-item>
<el-form-item label="进场时间:" class="table_item">xxxxx</el-form-item> <el-form-item label="联系电话" class="table_item">{{
<el-form-item label="是否需求机手:" class="table_item">xxxxx</el-form-item> detailsInfo.phone
<el-form-item label="详细地址:" class="table_item">xxxxx</el-form-item> }}</el-form-item>
<el-form-item label="工期时长:" class="table_item">xxxxx</el-form-item> <el-form-item label="租赁时长" class="table_item">
<el-form-item label="发票类型:" class="table_item">xxxxx</el-form-item>
<!-- {{ detailsInfo.}} -->
<!-- 暂无 --></el-form-item>
<el-form-item label="设备进场地址:" class="table_item">{{
detailsInfo.addressId
}}</el-form-item>
<el-form-item label="进场时间:" class="table_item">{{
detailsInfo.realStartTime
}}</el-form-item>
<el-form-item label="是否需求机手:" class="table_item">{{
detailsInfo.isMachinist
}}</el-form-item>
<el-form-item label="详细地址:" class="table_item">{{
detailsInfo.address
}}</el-form-item>
<el-form-item label="工期时长:" class="table_item">{{
detailsInfo.duration
}}</el-form-item>
<el-form-item label="发票类型:" class="table_item">{{
detailsInfo.invoiceType
}}</el-form-item>
<el-form-item label="项目说明:" style="width: 800px"> <el-form-item label="项目说明:" style="width: 800px">
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {{ detailsInfo.description }}
</el-form-item> </el-form-item>
<!-- <el-form-item label="订单起止时间:" style="width: 800px;"> <!-- <el-form-item label="订单起止时间:" style="width: 800px;">
xxxx-xx-xx ~ xxxx-xx-xx xxxx-xx-xx ~ xxxx-xx-xx
@ -62,46 +78,32 @@
xxxxx xxxxx
</el-form-item> --> </el-form-item> -->
<el-form-item label="订单合同:" style="width: 800px" v-if="stepVal == '1'"> <el-form-item label="订单合同:" style="width: 800px" v-if="stepVal == '1'">
<uploadComponent <div>
:maxLimit="1" <uploadComponent :maxLimit="1" listType="text" :acceptTypeList="['.pdf']" :scuccesCallback="scuccesCallback" height="32px" width="360px">
listType="text" <template v-slot:default>
:acceptTypeList="['.pdf']" <el-button type="primary">上传文件</el-button>
width="72px" </template>
height="24px"> </uploadComponent>
<template v-slot:default>
<el-button type="primary">上传文件</el-button> <div class="error_tip_c" v-show="errorTipFlag==2">请上传文件</div>
</template> </div>
</uploadComponent>
</el-form-item> </el-form-item>
<div v-else-if="stepVal == '2'"> <div v-else-if="stepVal == '2'">
<el-form-item label="机手姓名:" style="width: 300px"> <el-form :model="submitInfo" ref="ruleFormRef" :rules="formConfirmRules" label-width="136px">
<el-select <el-form-item label="机手姓名:" style="width: 300px" prop="driver">
v-model="submitInfo.driver" <!-- <el-select v-model="submitInfo.driver" placeholder="请选择机手姓名" clearable filterable style="width: 100%">
placeholder="请选择机手姓名" <el-option v-for="item in driverInfo.list" :key="item.value" :label="item.label"
clearable :value="item.value" />
filterable </el-select> -->
style="width: 100%"> <el-input v-model.trim="submitInfo.driver" placeholder="请输入机手姓名" clearable maxlength="30" />
<el-option </el-form-item>
v-for="item in driverInfo.list" <el-form-item label="联系电话:" style="width: 300px" prop="driverPhone">
:key="item.value" <el-input v-model.trim="submitInfo.driverPhone" placeholder="请输入联系电话" clearable maxlength="30" />
:label="item.label" </el-form-item>
:value="item.value" /> <el-form-item label="物流司机电话:" style="width: 300px" prop="deliverPhone">
</el-select> <el-input v-model.trim="submitInfo.deliverPhone" placeholder="请输入物流司机电话" clearable maxlength="30" />
</el-form-item> </el-form-item>
<el-form-item label="联系电话:" style="width: 300px"> </el-form>
<el-input
v-model.trim="submitInfo.driverPhone"
placeholder="请输入模版编号"
clearable
maxlength="30" />
</el-form-item>
<el-form-item label="物流司机电话:" style="width: 300px">
<el-input
v-model.trim="submitInfo.deliverPhone"
placeholder="请输入模版编号"
clearable
maxlength="30" />
</el-form-item>
</div> </div>
<div v-else-if="stepVal == '3'"> <div v-else-if="stepVal == '3'">
<el-form-item label="机手姓名:" style="width: 300px"> <el-form-item label="机手姓名:" style="width: 300px">
@ -116,144 +118,247 @@
</div> </div>
<el-form-item> <el-form-item>
<div class="btn_opert"> <div class="btn_opert">
<el-button type="primary" @click="demandConfirmFn" v-if="stepVal == '1'"> <el-button type="primary" @click="demandConfirmFn" v-if="stepVal == '0'">
需求确认 需求确认
</el-button> </el-button>
<el-button type="primary" @click="demandRejectFn" v-if="stepVal == '1'"> <el-button type="primary" @click="demandRejectFn" v-if="stepVal == '0'">
需求驳回 需求驳回
</el-button> </el-button>
<el-button type="primary" @click="nextFn" v-else-if="stepVal == '2'"> <el-button type="primary" @click="nextFn" v-else-if="stepVal == '1'">
下一步 下一步
</el-button> </el-button>
<el-button type="primary" @click="confirmSendFn" v-else-if="stepVal == '3'"> <el-button type="primary" @click="confirmSendFn" v-else-if="stepVal == '2'">
确认发货 确认发货
</el-button> </el-button>
<el-button type="primary" @click="backFn" v-else-if="stepVal == '3'">
返回
</el-button>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import orderTable from './orderTable.vue' import orderTable from './orderTable.vue'
import { reactive } from 'vue' import { reactive } from 'vue'
import { MoreFilled } from '@element-plus/icons-vue'
import timeLineHorizontal from './timeLineHorizontal.vue' import timeLineHorizontal from './timeLineHorizontal.vue'
import uploadComponent from 'components/uploadComponent/index.vue' import uploadComponent from 'components/uploadComponent/index.vue'
import { ElMessageBoxOpert } from 'utils/elementCom' import { ElMessageBoxOpert } from 'utils/elementCom'
const tableInfo = reactive({ import { ElMessage } from 'element-plus'
v_equipment_title: '220E履带挖掘机', import { apiOrderInfoDetails, apiUpdateOrderInfo, apiOrderReject } from 'http/api/usercenter/order'
v_equipment_code: '88888', const router = useRouter()
v_equipment_group_type: '挖掘机械', const route = useRoute()
v_equipment_brand: '挖掘机', const ruleFormRef = ref()
v_equipment_weight: '22吨', const tableInfo = reactive({
v_equipment_volume: '1立方米', v_equipment_title: '220E履带挖掘机',
v_equipment_address: '广东省广州市', v_equipment_code: '88888',
money: '2000', v_equipment_group_type: '挖掘机械',
unit: '月', v_equipment_brand: '挖掘机',
imgUrl: '' v_equipment_weight: '22吨',
}) v_equipment_volume: '1立方米',
v_equipment_address: '广东省广州市',
money: '2000',
unit: '月',
imgUrl: ''
})
const stepVal = ref('1') const errorTipFlag= ref(0)
const timeLineList = reactive({
list: [ const stepVal = ref('0')
{
title: '订单需求审核', const timeLineList = reactive({
content: '开工阶段', list: [
done: true {
}, title: '订单需求审核',
{ content: '开工阶段',
title: '合同上传', done: true
content: '请填写公司详细信息', },
done: true {
}, title: '合同上传',
{ content: '请填写公司详细信息',
title: '装备发货', done: false
content: '请填写公司财务信息', },
done: true {
title: '装备发货',
content: '请填写公司财务信息',
done: false
}
]
})
const driverInfo = reactive({
list: [
{
value: 'Option1',
label: 'Option1'
},
{
value: 'Option2',
label: 'Option2'
}
]
})
const submitInfo = reactive({
driver: '',
driverPhone: '',
deliverPhone: ''
})
const formConfirmRules = reactive<FormRules<any>>({
driver: [
{ required: true, message: '请选择机手姓名', trigger: 'change' },
],
driverPhone: [
{ required: true, message: '请输入联系电话', trigger: 'blur' },
],
deliverPhone: [
{ required: true, message: '请输入物流司机电话', trigger: 'blur' },
],
})
let fileItem:any=null
const demandConfirmFn = () => {
stepVal.value = '1'
timeLineList.list[1].done = true
}
const rejectCallBack = async (row: any, value: any) => {
console.log('editCallBack', row, value)
let params = {
}
const res = await apiOrderReject(params)
}
const demandRejectFn = (row: any) => {
ElMessageBoxOpert(
'驳回原因',
'填写驳回原因',
'确定',
'取消',
(val: any) => {
if (!val) {
return '请填写类型模板'
} }
] },
}) '请填写类型模板',
rejectCallBack,
row,
'textarea',
'dangerC'
)
}
const driverInfo = reactive({ const nextFn = () => {
list: [
{ if(!fileItem){
value: 'Option1', errorTipFlag.value=2
label: 'Option1'
}, }else{
{
value: 'Option2',
label: 'Option2'
}
]
})
const submitInfo = reactive({
driver: '',
driverPhone: '',
deliverPhone: ''
})
const demandConfirmFn = () => {
stepVal.value = '2' stepVal.value = '2'
} }
const editCallBack = (row: any, value: any) => {
console.log('editCallBack', row, value)
}
const demandRejectFn = (row: any) => {
ElMessageBoxOpert(
'驳回原因',
'填写驳回原因',
'确定',
'取消',
(val: any) => {
if (!val) {
return '请填写类型模板'
}
},
'请填写类型模板',
editCallBack,
row,
'textarea'
)
}
const nextFn = () => {
stepVal.value = '3'
}
const confirmSendFn = () => {} }
const detailsInfo: any = reactive({})
const initApiOrderDetails = async () => {
let id = route.query.id||'1'
const res: any = await apiOrderInfoDetails(id)
// const res:any = dataJson
console.log('res-apiOrderDetails', res)
Object.assign(detailsInfo, res.data)
}
const confirmSendFn = () => {
if (!ruleFormRef) return
ruleFormRef.value.validate(async(valid: any) => {
if (valid) {
let params = {
orderId: detailsInfo.orderId,
contractUrl: 'https://hzgyp-prod-1259451974.cos.ap-guangzhou.myqcloud.com/enterprise/serviceAgreement.pdf',//
machinistName: submitInfo.driver,//
logisticsPhone: submitInfo.deliverPhone,//
phone: submitInfo.driverPhone//
}
const res = await apiUpdateOrderInfo(params)
console.log("resapiUpdateOrderInfo", res)
ElMessage({
message: '已经确认发货',
type: 'success'
})
stepVal.value = '3'
timeLineList.list[2].done = true
console.log('submit!')
} else {
console.log('error submit!')
return false
}
})
}
const backFn = () => {
router.go(-1)
}
const scuccesCallback =(ev:any)=>{
console.log("list0000",ev)
fileItem=ev
errorTipFlag.value=1
}
onBeforeMount(() => {
initApiOrderDetails()
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.table_item { .table_item {
width: 250px; width: 250px;
height: 20px; height: 20px;
} }
.table_item_sub { .table_item_sub {
width: 250px; width: 250px;
height: 20px; height: 20px;
} }
.time_line_item { .time_line_item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.btn_c { .btn_c {}
} }
}
.total_money { .total_money {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
width: 760px; width: 760px;
} }
.btn_opert {
width: 760px;
display: flex;
justify-content: flex-end;
}
:deep(.el-upload) {
display: flex;
justify-content: flex-start;
}
.error_tip_c{
color: #ff0000;
}
</style>
<style>
.dangerC{
background-color: #F56C6C!important;
border: #F56C6C ;
}
.btn_opert {
width: 760px;
display: flex;
justify-content: flex-end;
}
</style> </style>

View File

@ -1,14 +1,9 @@
<template> <template>
<el-page-header @back="goBack" @click="$router.go(-1)"> <el-page-header @click="$router.go(-1)">
<template #content> <template #content>
<span>详情</span>
</template> </template>
</el-page-header> </el-page-header>
<el-form <el-form label-width="130px" inline="true" style="padding: 0 20px 0px 20px; width: 865px" size="small">
label-width="130px"
inline="true"
style="padding: 0 20px 0px 20px; width: 865px"
size="small">
<el-form-item label="订单编号" style="width: 600px"> <el-form-item label="订单编号" style="width: 600px">
{{ detailsInfo.code }} {{ detailsInfo.code }}
</el-form-item> </el-form-item>
@ -73,21 +68,16 @@
</el-form-item> </el-form-item>
<el-timeline style="margin-left: 20px; width: 560px"> <el-timeline style="margin-left: 20px; width: 560px">
<el-timeline-item <el-timeline-item v-for="(item, index) in stepListOrder.list" :key="index" :icon="item.icon" :type="item.type"
v-for="(item, index) in activities" :color="item.color" :size="item.size" :hollow="item.hollow" :timestamp="item.timestamp">
:key="index"
:icon="item.icon"
:type="item.type"
:color="item.color"
:size="item.size"
:hollow="item.hollow"
:timestamp="item.timestamp">
<div class="time_line_item"> <div class="time_line_item">
<div class="title"> <div class="title">
{{ item.content }} <!-- {{ item.content }} -->
订单状态
</div> </div>
<div class="btn_c"> <div class="btn_c" v-if="confimFlag">
<el-button type="primary" v-if="item.last">确认到货</el-button> <el-button type="primary" v-if="item.showBtnType == '2'" @click="confirmFn()">确认到货</el-button>
<el-button type="success" v-else-if="item.showBtnType == '3'">已收货</el-button>
</div> </div>
</div> </div>
</el-timeline-item> </el-timeline-item>
@ -96,101 +86,124 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive } from 'vue' import { reactive } from 'vue'
import orderTable from './orderTable.vue' import orderTable from './orderTable.vue'
import { MoreFilled } from '@element-plus/icons-vue' import { apiOrderInfoDetails, apiOrderInfoList, apiUpdateOrderInfo } from 'http/api/usercenter/order'
import { apiOrderDetails, apiOrderInfoList } from 'http/api/usercenter/order' import { ElMessage } from 'element-plus'
import dataJson from './json/details.json' const router = useRouter()
const tableInfo = reactive({ const route = useRoute()
v_equipment_title: '220E履带挖掘机', const tableInfo = reactive({
v_equipment_code: '88888', v_equipment_title: '220E履带挖掘机',
v_equipment_group_type: '挖掘机械', v_equipment_code: '88888',
v_equipment_brand: '挖掘机', v_equipment_group_type: '挖掘机械',
v_equipment_weight: '22吨', v_equipment_brand: '挖掘机',
v_equipment_volume: '1立方米', v_equipment_weight: '22吨',
v_equipment_address: '广东省广州市', v_equipment_volume: '1立方米',
money: '2000', v_equipment_address: '广东省广州市',
unit: '月', money: '2000',
imgUrl: '' unit: '月',
}) imgUrl: ''
const activities = [ })
{ const stepListOrder: any = reactive({
content: '订单状态', list: [
timestamp: '需求已提交,等待供应商审核。',
size: 'large',
type: 'primary',
icon: MoreFilled
},
{
content: '订单状态',
timestamp: '订单已确认,供应商会与您联系,签订合同。',
color: '#0bbd87'
},
{
content: '订单状态',
timestamp: '装备已发出,到货后请及时确认。',
size: 'large'
},
{
content: '订单状态',
timestamp: '租赁进行中。',
type: 'primary',
hollow: true,
last: true
},
{
content: 'Default node',
timestamp: '2018-04-03 20:46'
}
] ]
const detailsInfo: any = reactive({}) })
const initApiOrderDetails = async () => { const detailsInfo: any = reactive({})
let id = '1' const initApiOrderDetails = async () => {
const res: any = await apiOrderDetails(id) let id = route.query.id || '1'
// const res:any = dataJson const res: any = await apiOrderInfoDetails(id)
console.log('res-apiOrderDetails', res) // const res:any = dataJson
Object.assign(detailsInfo, res.data) console.log('res-apiOrderDetails', res)
} Object.assign(detailsInfo, res.data)
}
const initApiOrderInfoList = async () => { const initApiOrderInfoList = async () => {
let params = { let params = {
orderId: '1' orderId: route.query.id || '1'
}
const res: any = await apiOrderInfoList(params)
// const res:any = dataJson
console.log('res-apiOrderInfoList', res)
stepListOrder.list = res.rows.map((ele: any) => {
let timeStamp = "装备已发出,到货后请及时确认。"
let showBtnType = "1"
if (ele.orderStatus == '31') {
timeStamp = "需求已提交,等待供应商审核。"
} else if (ele.orderStatus == '32') {
timeStamp = "订单已确认,供应商会与您联系,签订合同。"
} else if (ele.orderStatus == '35') {
timeStamp = "装备已发出,到货后请及时确认。"
showBtnType = "2"
} else if (ele.orderStatus == '36') {
timeStamp = "租赁进行中。"
} }
const res: any = await apiOrderInfoList(params) const item = {
// const res:any = dataJson content: '订单状态',
console.log('res-apiOrderInfoList', res) timestamp: timeStamp,
} showBtnType
}
const pdfPreview = (url: any) => { return item
window.open(url, '_blank')
}
onBeforeMount(() => {
initApiOrderDetails()
initApiOrderInfoList()
}) })
}
const pdfPreview = (url: any) => {
window.open(url, '_blank')
}
const confirmFn = async () => {
let params = {
orderId: detailsInfo.orderId || '1',
orderStatus: "35"
}
const res: any = await apiUpdateOrderInfo(params)
console.log("res-confrim", res)
if (res.code == 200) {
console.log("stepListOrder", stepListOrder.list)
const item = stepListOrder.list.find((ele: any) => { return ele.showBtnType == '2' })
console.log("item666", item)
item.showBtnType = '3'
router.go(-1)
ElMessage({
message: '已经确认收货',
type: 'success'
})
}
}
const confimFlag: any = ref(false)
const initPage = () => {
confimFlag.value = route.query.confirm
}
onBeforeMount(() => {
initPage()
initApiOrderDetails()
initApiOrderInfoList()
})
onBeforeMount(() => {
initApiOrderDetails()
})
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.table_item { .table_item {
width: 250px; width: 250px;
height: 20px; height: 20px;
} }
.table_item_sub { .table_item_sub {
width: 250px; width: 250px;
height: 20px; height: 20px;
} }
.time_line_item { .time_line_item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.btn_c { .btn_c {}
} }
}
</style> </style>