Browse Source

ggg

master
Bobi 3 months ago
parent
commit
8112aa59f8
13 changed files with 800 additions and 40 deletions
  1. +31
    -13
      api/api.js
  2. +22
    -0
      components/ProcessCard/ProcessCard.vue
  3. +55
    -0
      components/work/WorkOrderitem.vue
  4. +2
    -2
      config.js
  5. +23
    -25
      pages/index/index.vue
  6. +154
    -0
      pages_order/order/FavoriteList.vue
  7. +137
    -0
      pages_order/order/ModifyWorkOrder.vue
  8. +25
    -0
      pages_order/order/ProcessCardFour.vue
  9. +26
    -0
      pages_order/order/ProcessCardOne.vue
  10. +26
    -0
      pages_order/order/ProcessCardThree.vue
  11. +26
    -0
      pages_order/order/ProcessCardTo.vue
  12. +112
    -0
      pages_order/order/WorkOrderListitem.vue
  13. +161
    -0
      pages_order/order/WorkOrders.vue

+ 31
- 13
api/api.js View File

@ -13,8 +13,26 @@ const config = {
// auth : false, showLoading : true, loadingTitle : '加载中...',
// limit : 1000
// },
getConfig: {
url: '/api/getConfig',
method: 'GET',
limit: 500
},
//轮播图-轮播图列表
queryBannerList: {
url: '/workorder/banner/queryBannerList',
method: 'GET',
},
getConfig : {url : '/api/getConfig', method : 'GET', limit : 500},
//工单信息-查询工单列表
queryTemplateList: {
url: '/workorder/template/queryTemplateList',
method: 'GET',
},
}
@ -53,27 +71,27 @@ export function api(key, data, callback, loadingTitle) {
return
}
}
// 接口防抖
if(req.debounce){
if (req.debounce) {
let storageKey = req.url
let storage = debounce[storageKey]
if (storage) {
clearTimeout(storage)
}
debounce[storageKey] = setTimeout(() => {
clearTimeout(storage)
delete debounce[storageKey]
http.http(req.url, data, callback, req.method,
loadingTitle || req.showLoading, loadingTitle || req.loadingTitle)
}, req.debounce)
return
}
@ -83,9 +101,9 @@ export function api(key, data, callback, loadingTitle) {
function addApiModel(model, key){
for(let k in model){
if(config[`${k}`]){
function addApiModel(model, key) {
for (let k in model) {
if (config[`${k}`]) {
console.error(`重名api------model=${key},key=${k}`);
continue
}


+ 22
- 0
components/ProcessCard/ProcessCard.vue View File

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

+ 55
- 0
components/work/WorkOrderitem.vue View File

@ -0,0 +1,55 @@
<template>
<view class="Urgent-Work-List" @click="$emit('click')">
<view class="Work-List">
任务号{{ obj.taskNo }}
</view>
<view class="Work-List">
担当信息{{obj.responsibler}}
</view>
<view class="Work-List">
机型信息{{obj.model}}
</view>
<view class="Work-List">
数量{{obj.number}}
</view>
<view class="Work-List">
工单状态{{obj.remark}}
</view>
</view>
</template>
<script>
export default {
name: "WorkOrderitem",
props : {
obj : {}
},
data() {
return {
};
}
}
</script>
<style scoped lang="scss">
.Urgent-Work-Order{
padding: 20rpx;
.Urgent-Work{
}
.Urgent-Work-List{
margin-top: 20rpx;
border: 6rpx solid rgb(99 ,187 ,211);
border-radius: 25rpx;
padding: 15rpx;
.Work-List{
margin: 15rpx 0rpx;
letter-spacing: 2px
}
}
}
</style>

+ 2
- 2
config.js View File

@ -7,7 +7,7 @@ import uvUI from '@/uni_modules/uv-ui-tools'
Vue.use(uvUI);
// 当前环境
const type = 'dev'
const type = 'prod'
// 环境配置
@ -16,7 +16,7 @@ const config = {
baseUrl : 'http://www.gcosc.fun:82',
},
prod : {
baseUrl : 'http://xxx.xxx.xxx/xxx',
baseUrl : 'https://workorderadmin.augcl.com/workorder-admin',
}
}


+ 23
- 25
pages/index/index.vue View File

@ -4,7 +4,12 @@
<navbar />
<view class="Carousel-image">
<view class="imgs">
<uv-swiper :list="list" indicator indicatorMode="dot" circular height="420"></uv-swiper>
<uv-swiper
:list="bannerList"
indicator indicatorMode="dot"
keyName="image"
circular height="420">
</uv-swiper>
</view>
@ -50,7 +55,8 @@
</view>
<WorkOrderitem
v-for="(item,index) in 2 "
v-for="(item,index) in list"
:obj="item"
/>
@ -67,12 +73,13 @@
import tabber from '@/components/base/tabbar.vue'
import productList from '@/components/user/productList.vue'
import WorkOrderitem from '@/components/work/WorkOrderitem.vue'
import mixinsList from '@/mixins/list.js'
import {
mapGetters
} from 'vuex'
// import selectArea from '../../components/selectArea.vue';
export default {
mixins: [mixinsList],
components: {
tabber,
productList,
@ -81,33 +88,24 @@
},
data() {
return {
list: [
'https://cdn.uviewui.com/uview/swiper/swiper1.png',
'https://cdn.uviewui.com/uview/swiper/swiper2.png',
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
],
area: '长沙',
text: '长沙市刘师傅在服务过程中客户投诉“服务过程中有不文明的行为”.....',
queryParams: {
pageNo: 1,
pageSize: 10,
title: ''
},
bannerList: [{
url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
},
{
url: 'https://cdn.uviewui.com/uview/swiper/swiper2.png',
},
{
url: 'https://cdn.uviewui.com/uview/swiper/swiper3.png',
},
],
bannerList: [],
mixinsListApi : 'queryTemplateList',
}
},
computed: {
},
onLoad() {
this.queryBannerList()
},
methods: {
queryBannerList(){
this.$api('queryBannerList', res =>{
if(res.code == 200){
console.log(res.result.records[0].image);
this.bannerList = res.result.records
}
})
}
}
}
</script>


+ 154
- 0
pages_order/order/FavoriteList.vue View File

@ -0,0 +1,154 @@
<template>
<view class="page">
<navbar
title="收藏列表"
leftClick
@leftClick="$utils.navigateBack"/>
<uv-search placeholder="请输入搜索内容" v-model="keyword" height="80"></uv-search>
<!-- 标签选项 -->
<view class="Tabs">
<uv-tabs :list="listt" @click="click" ></uv-tabs>
</view>
<view class="Urgent-Work-Order">
<WorkOrderitem
v-for="(item,index) in list"
:obj="item"
/>
<!-- <view class="Urgent-Work-List" v-for="(item,index) in 2 " >
<view class="Work-List">
任务号GY1269103AC0
</view>
<view class="Work-List">
担当信息李林珠-15177689988
</view>
<view class="Work-List">
机型信息BSZ24861768
</view>
<view class="Work-List">
数量88
</view>
<view class="Work-List">
工单状态本体加工
</view>
</view> -->
</view>
<tabber select="3" />
</view>
</template>
<script>
import tabber from '@/components/base/tabbar.vue'
import WorkOrderitem from '@/components/work/WorkOrderitem.vue'
import mixinsList from '@/mixins/list.js'
export default {
mixins: [mixinsList],
components: {
tabber,
WorkOrderitem,
},
data() {
return {
keyword: '水调歌头',
listt: [{
name: '所有',
}, {
name: '备料中',
}, {
name: '本体加工'
}, {
name: '气密检测'
}, {
name: '挂机中'
}],
value : 0,
checkboxValue : [],
options: [
{
text: '删除',
style: {
backgroundColor: '#FA5A0A'
}
},
],
list : [
{
id : 1,
title : '桌布租赁',
num : 1,
price : 299,
unit : '120*40*75【桌子尺寸】',
},
{
id : 2,
title : '桌布租赁',
num : 1,
price : 299,
unit : '120*40*75【桌子尺寸】',
},
],
mixinsListApi : 'queryTemplateList',
}
},
computed: {
totalPrice(){
if (!this.checkboxValue.length) {
return 0
}
let price = 0
this.list.forEach(n => {
if(this.checkboxValue.includes(n.id)){
price += n.price * n.num
}
})
return price
},
},
methods: {
valChange(){
},
click(item) {
console.log('item', item);
}
}
}
</script>
<style scoped lang="scss">
.page {
padding-bottom: 200rpx;
/deep/ .uv-swipe-action{
width: 100%;
}
.Tabs{
display: flex;
justify-content: center;
}
.Urgent-Work-Order{
padding: 20rpx;
.Urgent-Work-List{
margin-top: 20rpx;
border: 6rpx solid rgb(99 ,187 ,211);
border-radius: 25rpx;
padding: 15rpx;
.Work-List{
margin: 15rpx 0rpx;
letter-spacing: 2px
}
}
}
}
</style>

+ 137
- 0
pages_order/order/ModifyWorkOrder.vue View File

@ -0,0 +1,137 @@
<template>
<view class="page">
<navbar title="工单详情" leftClick @leftClick="$utils.navigateBack" />
<view class="Box">
<view class="work-box">
<view class="works">
任务号
</view>
<view class="index">
GY1269103AC0
</view>
</view>
<view class="work-box">
<view class="works">
担当信息
</view>
<view class="index">
李林珠-15197216688
</view>
</view>
<view class="work-box">
<view class="works">
机型信息
</view>
<view class="index">
BSZ24861768
</view>
</view>
<view class="work-box">
<view class="works">
数量
</view>
<view class="index">
<uv-input placeholder="88" border="surround" v-model="value" @change="change"></uv-input>
</view>
</view>
<view class="work-box">
<view class="works">
状态
</view>
<view class="index">
<uv-input placeholder="本体加工" border="surround" v-model="value" @change="change"></uv-input>
</view>
</view>
<view class="work-boxx">
<view class="workss">
备注
</view>
<view class="indexx">
<uv-input placeholder="备料已完成,等待本体加工,进入下一步气密检测" border="surround"
v-model="value" @change="change"
color="#fff" ></uv-input>
</view>
</view>
</view>
<view class="modify">
<view class="modi">
保存
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
value: ''
}
},
methods: {
change(e) {
console.log('change', e);
}
}
}
</script>
<style>
.page {
.Box {
margin-top: 40rpx;
.work-box {
padding: 0rpx 30rpx;
margin: 15rpx 0rpx;
display: flex;
align-items: center;
font-size: 35rpx;
}
.work-boxx {
padding: 0rpx 30rpx;
margin: 15rpx 0rpx;
display: flex;
font-size: 35rpx;
.indexx {
margin-top: 3rpx;
}
.workss {
font-size: 35rpx;
}
}
}
.modify {
text-align: center;
margin-top: 790rpx;
display: flex;
align-items: center;
justify-content: center;
.modi {
padding: 20rpx 60rpx;
background-color: rgb(2, 167, 240);
border-radius: 15rpx;
}
}
}
</style>

+ 25
- 0
pages_order/order/ProcessCardFour.vue View File

@ -0,0 +1,25 @@
<template>
<view>
<navbar
title="工序卡4"
leftClick
@leftClick="$utils.navigateBack"/>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

+ 26
- 0
pages_order/order/ProcessCardOne.vue View File

@ -0,0 +1,26 @@
<template>
<view>
<navbar
title="工序卡3"
leftClick
@leftClick="$utils.navigateBack"/>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

+ 26
- 0
pages_order/order/ProcessCardThree.vue View File

@ -0,0 +1,26 @@
<template>
<view>
<navbar
title="工序卡3"
leftClick
@leftClick="$utils.navigateBack"/>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

+ 26
- 0
pages_order/order/ProcessCardTo.vue View File

@ -0,0 +1,26 @@
<template>
<view>
<navbar
title="工序卡2"
leftClick
@leftClick="$utils.navigateBack"/>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

+ 112
- 0
pages_order/order/WorkOrderListitem.vue View File

@ -0,0 +1,112 @@
<template>
<view class="page">
<navbar title="列表" leftClick @leftClick="$utils.navigateBack" />
<uv-search placeholder="请输入搜索内容" v-model="keyword" height="80"></uv-search>
<!-- 标签选项 -->
<view class="Tabs">
<uv-tabs :list="listt" @click="click"></uv-tabs>
</view>
<view class="Urgent-Work-Order">
<WorkOrderitem v-for="(item,index) in list" :obj="item"
@click="$utils.navigateTo('/pages_order/order/WorkOrders')" />
</view>
<tabber select="1" />
</view>
</template>
<script>
import tabber from '@/components/base/tabbar.vue'
import WorkOrderitem from '@/components/work/WorkOrderitem.vue'
import mixinsList from '@/mixins/list.js'
export default {
mixins: [mixinsList],
components: {
tabber,
WorkOrderitem,
},
data() {
return {
mixinsListApi : 'queryTemplateList',
keyword: '水调歌头',
listt: [{
name: '所有',
}, {
name: '备料中',
}, {
name: '本体加工'
}, {
name: '气密检测'
}, {
name: '挂机中'
}],
chain: false,
value: 0
}
},
computed: {
list2() {
const _list = this.list[this.value]?.childrens;
return _list ? _list : [];
}
},
onReady() {
},
methods: {
change(index) {
console.log('选项改变:', index)
this.value = index;
},
click(item) {
console.log('item', item);
}
}
}
</script>
<style scoped lang="scss">
.page {
background-color: #fff;
/deep/ .uv-vtabs {
height: calc(100vh - 360rpx) !important;
}
/deep/ .uv-vtabs__bar {
height: calc(100vh - 360rpx) !important;
}
/deep/ .uv-vtabs__content {
height: calc(100vh - 360rpx) !important;
}
.Tabs {
display: flex;
justify-content: center;
}
.Urgent-Work-Order {
padding: 20rpx;
.Urgent-Work-List {
margin-top: 20rpx;
border: 6rpx solid rgb(99, 187, 211);
border-radius: 25rpx;
padding: 15rpx;
.Work-List {
margin: 15rpx 0rpx;
letter-spacing: 2px
}
}
}
}
</style>

+ 161
- 0
pages_order/order/WorkOrders.vue View File

@ -0,0 +1,161 @@
<template>
<view class="page">
<navbar
title="详情"
leftClick
@leftClick="$utils.navigateBack"
/>
<view class="Box">
<view class="work-box">
<view class="works">
任务号
</view>
<view class="index">
GY1269103AC0
</view>
</view>
<view class="work-box">
<view class="works">
担当信息
</view>
<view class="index">
李林珠-15197216688
</view>
</view>
<view class="work-box">
<view class="works">
机型信息
</view>
<view class="index">
BSZ24861768
</view>
</view>
<view class="work-box">
<view class="works">
数量
</view>
<view class="index">
88
</view>
</view>
<view class="work-box">
<view class="works">
状态
</view>
<view class="index">
本体加工
</view>
</view>
<view class="work-boxx">
<view class="workss">
备注
</view>
<view class="indexx">
备料已完成等待本体加工进入下一步气
密检测55555555
</view>
</view>
</view>
<view class="working-procedure">
<view class="working" @click="$utils.navigateTo('/pages_order/order/ProcessCardOne')">
中试压缩机试作工序卡1选配
</view>
<view class="working" @click="$utils.navigateTo('/pages_order/order/ProcessCardTo')">
中试压缩机试作工序卡2
</view>
<view class="working" @click="$utils.navigateTo('/pages_order/order/ProcessCardThree')">
中试压缩机试作工序卡2
</view>
<view class="working" @click="$utils.navigateTo('/pages_order/order/ProcessCardFour')">
中试压缩机试作工序卡4(总成)
</view>
</view>
<view class="modify">
<view class="modi"
@click="$utils.navigateTo('/pages_order/order/ModifyWorkOrder')">
修改
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
.page {
.Box{
margin-top: 40rpx;
.work-box {
padding: 0rpx 30rpx;
margin: 15rpx 0rpx;
display: flex;
align-items: center;
font-size: 35rpx;
}
.work-boxx {
padding: 0rpx 30rpx;
margin: 15rpx 0rpx;
display: flex;
font-size: 35rpx;
.indexx {
margin-top: 3rpx;
}
.workss {
width: 170rpx;
font-size: 35rpx;
}
}
}
.working-procedure {
text-align: center;
margin-top: 150rpx;
font-size: 35rpx;
.working {
margin: 25rpx 0rpx;
color: rgb(83, 125, 180);
}
}
.modify{
text-align: center;
margin-top: 380rpx;
display: flex;
align-items: center;
justify-content: center;
.modi{
padding: 20rpx 60rpx;
background-color:rgb(2 ,167, 240) ;
border-radius: 15rpx;
}
}
}
</style>

Loading…
Cancel
Save