页面代码优化,代办事项列表和代办审核

This commit is contained in:
2023-08-14 14:27:01 +08:00
parent f860f9784e
commit f24b5feab2
10 changed files with 233 additions and 150 deletions

84
package-lock.json generated
View File

@ -2030,6 +2030,49 @@
"webpack-merge": "^5.7.3",
"webpack-virtual-modules": "^0.4.2",
"whatwg-fetch": "^3.6.2"
},
"dependencies": {
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.1",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz",
"integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
}
}
},
"json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
}
}
},
"@vue/cli-shared-utils": {
@ -2194,47 +2237,6 @@
}
}
},
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.1",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz",
"integrity": "sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
},
"json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
"integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
}
}
},
"@vue/web-component-wrapper": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",

View File

@ -1,13 +1,36 @@
import request from '@/utils/http'
// 预计费用计算
// 代办事项列表
export function getToDoList() {
return request({
url: '/supplierAppV2/dispatchApp/toDoMessage/toDoList',
method: 'POST',
// withCredentials: true
// contentType: 'application/json',
// data
})
}
// 代办事项审核
export function toDoAudit(data){
return request({
url:'/supplierAppV2/dispatchApp/toDoMessage/toDoAudit',
method:'POST',
contentType: 'application/json',
data
})
}
// 工单详情
export function getOrderDetail(data){
return request({
url:'/supplierAppV2/dispatchApp/order/getOrderDetail',
method:'POST',
contentType:'application/json',
data
})
}
// 工单报备
export function orderReporting(data){
return request({
url:'/supplierAppV2/dispatchApp/order/orderReporting',
method:'POST',
contentType:'application/json',
data
})
}

View File

@ -39,25 +39,28 @@ export default {
}
</script>
<style scoped>
<style scoped lang="scss">
@import "@/styles/mixin.scss";
::v-deep .van-cell{
padding:0 25px 0 0;
line-height: 57px;
}
::v-deep .van-cell--required::before{
background-image: url("@/assets/start.png");
background-repeat: no-repeat;
content:'';
background: url("@/assets/start.png") no-repeat center/cover;
position: absolute;
left: 0;
top: 25px;
width: 8px;
height: 8px;
margin-right: 3px;
content:''
top: 45%;
transform: translateY(-50%);
@include widHeiMar(6px,6px,3px);
}
::v-deep .van-field__label{
@include fontWeightSize(500,14px);
color: #323643;
margin-left: 20px;
margin-left: 10px;
}
::v-deep .van-field__control{
color: #323643;
@include fontWeightSize(500,13px);
}
</style>

View File

@ -31,13 +31,13 @@ export default {
<style scoped lang="scss">
@import "@/styles/mixin.scss";
@import "@/styles/common.scss";
.btn{
@include flexColBet;
button{
@include whLin(152px,39px);
border-radius: 5px;
color: #FFFFFF;
border: none;
@include fontWeightSize(500,14px)
}
.cancel{

View File

@ -1,3 +1,17 @@
input{
border: none;
}
button{
border: none;
}
select{
background-color: transparent; /* 设置透明背景色 */
border: none; /* 取消边框 */
outline: none;
/* 右侧添加箭头的背景图 自行调整位置 */
//background: url('@/assets/copy.png') 20px center no-repeat #fff;
}
.van-toast--html, .van-toast--text {
z-index: 100000000002 !important;
}

View File

@ -2,11 +2,10 @@ import axios from "axios";
import qs from 'qs'
import { Toast } from 'vant'
console.log('process.env.VUE_APP_BASE_API', process.env.VUE_APP_BASE_API)
// console.log('process.env.VUE_APP_BASE_API', process.env.VUE_APP_BASE_API)
const service = axios.create({
// baseURL: process.env.VUE_APP_BASE_API,
baseURL: 'https://api1.sino-assist.com/',
baseURL: process.env.VUE_APP_BASE_API,
headers: {
Accept: 'application/json'
},
@ -33,17 +32,18 @@ service.interceptors.request.use(
service.interceptors.response.use(
response => {
const res = response.data
console.log('rere', res)
if (res.code && (res.code != '00' && res.code != '105' )) {
Toast(res.msg || 'Error')
return Promise.reject(new Error(res.msg || 'Error'))
} else {
if( res.code === 0 ) {
return res.result
} else {
return res.data
}
}
// console.log('rere', res)
return res
// if (res.code && (res.code != '00' && res.code != '105' )) {
// Toast(res.msg || 'Error')
// return Promise.reject(new Error(res.msg || 'Error'))
// } else {
// if( res.code === 0 ) {
// return res.result
// } else {
// return res.data
// }
// }
},
error => {
console.log('err' + error)

View File

@ -1,45 +1,47 @@
<template>
<div class="wrap">
<cell-group label="测试" placeholder="请输入测试内容" v-model="name"/>
<div class="itemContent">
<div class="titleType">
<img class="startImg" src="@/assets/start.png" />
<span>司机姓名</span>
</div>
<div class="checkContent">
<input placeholder="请输入司机姓名" />
</div>
</div>
<div class="lineBot"></div>
<div class="itemContent">
<div class="titleType">
<img class="startImg" src="@/assets/start.png" />
<span>手机号码</span>
</div>
<div class="checkContent">
<input placeholder="请输入手机号码" />
</div>
</div>
<div class="lineBot"></div>
<div class="itemContent">
<div class="titleType">
<img class="startImg" src="@/assets/start.png" />
<span>身份证号</span>
</div>
<div class="checkContent">
<input placeholder="请输入身份证号" />
</div>
</div>
<div class="lineBot"></div>
<cell-group label="司机姓名" placeholder="请输入司机姓名" @input="getName(name)" v-model="name"/>
<cell-group label="手机号码" placeholder="请输入手机号" @input="getPhone(phone)" v-model="phone"/>
<cell-group label="身份证号" placeholder="请输入身份证号" @input="getCarId(carId)" v-model="carId"/>
<!-- <div class="itemContent">-->
<!-- <div class="titleType">-->
<!-- <img class="startImg" src="@/assets/start.png" />-->
<!-- <span>司机姓名</span>-->
<!-- </div>-->
<!-- <div class="checkContent">-->
<!-- <input placeholder="请输入司机姓名" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="lineBot"></div>-->
<!-- <div class="itemContent">-->
<!-- <div class="titleType">-->
<!-- <img class="startImg" src="@/assets/start.png" />-->
<!-- <span>手机号码</span>-->
<!-- </div>-->
<!-- <div class="checkContent">-->
<!-- <input placeholder="请输入手机号码" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="lineBot"></div>-->
<!-- <div class="itemContent">-->
<!-- <div class="titleType">-->
<!-- <img class="startImg" src="@/assets/start.png" />-->
<!-- <span>身份证号</span>-->
<!-- </div>-->
<!-- <div class="checkContent">-->
<!-- <input placeholder="请输入身份证号" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="lineBot"></div>-->
<div class="itemContent">
<div class="titleType">
<img class="startImg" src="@/assets/start.png" />
<span>准驾车型</span>
</div>
<select id="myDropdown" @change="handleSelectChange()" style="border: none">
<option value="option1">C1</option>
<option value="option2">C2</option>
<option value="option3">C3</option>
<select id="mySelect" class="chosen-select" style="width: 44px">
<option value="C1">C1</option>
<option value="C2">C2</option>
<option value="C3">C3</option>
</select>
</div>
<div class="lineBot"></div>
@ -82,11 +84,21 @@ export default {
data(){
return{
name:"",
phone:"",
carId:"",
radio:'启用',
activeIcon: require('@/assets/check.png'),
inactiveIcon: require('@/assets/uncheck.png')
}
},
mounted() {
console.log("radio",this.radio)
const selectElement = document.getElementById('mySelect');
selectElement.addEventListener('change', function() {
const selectedValue = selectElement.value;
console.log('Selected value:', selectedValue);
});
},
methods:{
isUse(e){
console.log("是否启用",e)
@ -96,6 +108,15 @@ export default {
},
submitBtn(){
console.log("提交司机")
},
getName(e){
console.log("NAME",e);
},
getPhone(e){
console.log("phone",e);
},
getCarId(e){
console.log("car",e);
}
},
components:{
@ -108,6 +129,7 @@ export default {
<style scoped lang="scss">
@import "@/styles/mixin.scss";
@import "@/styles/common.scss";
.wrap{
@include wh(100%,100%);
box-sizing: border-box;
@ -141,6 +163,7 @@ export default {
@include fontWeightSize(500,13px);
opacity: .5;
}
}
.lineBot{
@include wh(100%,1px);

View File

@ -1,15 +1,15 @@
<template>
<div class="wrap" >
<ul id="dataList" class="dataList">
<li class="item" v-for="(item,i) in 4" :key="i">
<li class="item" v-for="(item,i) in todolist" :key="i">
<div class="left">
<div class="repairName"><span class="name">维修申请</span><span class="carCode">苏AB6768</span></div>
<div class="addressName">苏州老张汽车修理厂</div>
<div class="time">2023-05-12 12:30:30 张三</div>
<div class="repairName"><span class="name">{{ item.toDoType.label }}</span><span class="carCode">{{item.plateNumber ? item.plateNumber : "无"}}</span></div>
<div class="addressName">{{ item.address }}</div>
<div class="time">{{item.toDoTime}} &nbsp;&nbsp;{{item.userName}}</div>
</div>
<div class="right">
<button class="nopass" @click="noPass">不通过</button>
<button class="pass" @click="pass">通过</button>
<button class="nopass" @click="noPass(item)">不通过</button>
<button class="pass" @click="passThrough(item)">通过</button>
</div>
</li>
</ul>
@ -17,12 +17,12 @@
</template>
<script>
import {getToDoList} from "@/api/order"
import {getToDoList,toDoAudit} from "@/api/order"
export default {
name: "toDoList",
data(){
return{
todolist:[],
}
},
mounted() {
@ -30,14 +30,25 @@ export default {
},
methods:{
async getList(){
let result=await getToDoList()
console.log("result",result)
let result=await getToDoList();
if(result.code === 200){
this.todolist=result.data;
console.log("this.todolist",this.todolist)
}
},
noPass(){
console.log("不通过")
async noPass(item){
let result=await toDoAudit({
toDoId:item.toDoId,
toDoType:item.toDoType.code
})
console.log("不通过",item,result)
},
pass(){
console.log("通过")
async passThrough(item){
let result=await toDoAudit({
toDoId:item.toDoId,
toDoType:item.toDoType.code
})
console.log("通过",item,result)
}
}
}
@ -45,9 +56,9 @@ export default {
<style scoped lang="scss">
@import "@/styles/mixin.scss";
@import "@/styles/common.scss";
.wrap {
width: 100%;
height: 100%;
@include wh(100%,100%);
box-sizing: border-box;
padding: 13px 13px 0 13px;
background-color: #F4F5F7;
@ -59,8 +70,7 @@ export default {
.item {
list-style: none;
display: flex;
justify-content: space-between;
@include flexColBet;
margin-bottom: 10px;
width: 100%;
background: #FFFFFF;
@ -106,10 +116,8 @@ button {
}
.pass {
border: none;
border: 1px solid #2A5094 !important;
background: #2A5094;
color: white;
@include bgFontColor(white,#2A5094);
}

View File

@ -1,25 +1,26 @@
<template>
<div class="wrap">
<div class="addContentWrap">
<div class="itemContent">
<div class="titleType">
<img class="startImg" src="@/assets/start.png" />
<span>车牌号</span>
</div>
<div class="checkContent">
<input placeholder="请输入车牌号" />
</div>
</div>
<div class="lineBot"></div>
<cell-group label="车牌号" placeholder="请输入车牌号" @input="getPLateNum(carNum)" v-model="carNum" />
<!-- <div class="itemContent">-->
<!-- <div class="titleType">-->
<!-- <img class="startImg" src="@/assets/start.png" />-->
<!-- <span>车牌号</span>-->
<!-- </div>-->
<!-- <div class="checkContent">-->
<!-- <input placeholder="请输入车牌号" />-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="lineBot"></div>-->
<div class="itemContent">
<div class="titleType">
<img class="startImg" src="@/assets/start.png" />
<span>车辆类型</span>
</div>
<select id="myDropdown" @change="handleSelectChange()">
<option value="option1">一般平板</option>
<option value="option2">小轿车</option>
<option value="option3">大卡车</option>
<select id="mySelect" style="width: 80px">
<option value="一般平板">一般平板</option>
<option value="小轿车">小轿车</option>
<option value="大卡车">大卡车</option>
</select>
</div>
<div class="lineBot"></div>
@ -130,6 +131,7 @@
<script>
import {myMixins} from "@/utils/myMixins"
import TwoCommonBtn from "@/components/twoBtnCommon.vue"
import CellGroup from "@/components/cellGroup.vue";
export default {
name: "vehicleAdd",
mixins:[myMixins],
@ -139,10 +141,17 @@ export default {
radio2: '换胎',
radio3:'参与',
activeIcon: require('@/assets/check.png'),
inactiveIcon: require('@/assets/uncheck.png')
inactiveIcon: require('@/assets/uncheck.png'),
carNum:"",
}
},
mounted() {
const selectElement = document.getElementById('mySelect');
selectElement.addEventListener('change', function() {
const selectedValue = selectElement.value;
console.log('Selected value:', selectedValue);
});
},
methods:{
change(e) {
console.log("拖车服务",e)
@ -158,9 +167,13 @@ export default {
},
submitBtn(){
console.log("提交车辆")
},
getPLateNum(e){
console.log("e",e)
}
},
components:{
CellGroup,
TwoCommonBtn
}
}
@ -209,9 +222,6 @@ export default {
background: #E9E9EA;
opacity: 0.6;
}
select{
border: none;
}
.serviceType{
@include fontWeightSize(500,13px);
margin-left: 15px;

View File

@ -8,12 +8,12 @@ const name = '调度APP' // page title
module.exports = defineConfig({
transpileDependencies: true,
// 基本路径
// publicPath: "./",
// publicPath: "./",s
// publicPath: process.env.NODE_ENV === 'production' ? '/h5/rescue': '/dev/h5/rescue',
// publicPath: process.env.NODE_ENV === 'production' ,
// lintOnSave: process.env.NODE_ENV === 'development',
devServer: {
https: true,
https: false,
port: 8080,
// open: true,
// disableHostCheck: true,