Commit 0030240b authored by 李驰骋's avatar 李驰骋

Merge remote-tracking branch 'origin/master' into dev

# Conflicts:
#	pages/mes/prodReport/index.vue
parents 80c58191 ed3f1b37
<script> <script>
export default { export default {
onLaunch: function() { onLaunch: function () {
// console.log('App Launch') // #ifdef APP-PLUS
plus.navigator.setFullscreen(true);
plus.screen.lockOrientation('landscape-primary');
// #endif
}, },
onShow: function() { onShow: function () {
// console.log('App Show')
}, },
onHide: function() { onHide: function () {
// console.log('App Hide')
}
} }
}
</script> </script>
<style lang="scss"> <style lang="scss">
/*每个页面公共css */ /*每个页面公共css */
@import "@/uview-ui/index.scss"; @import "@/uview-ui/index.scss";
</style> </style>
FROM nginx
MAINTAINER xin.lu
VOLUME /tmp
ENV LANG en_US.UTF-8
RUN echo "server { \
listen 81; \
client_max_body_size 50M; \
location /api/ { \
proxy_pass http://192.168.3.91:8084/; \
proxy_redirect off; \
proxy_set_header Host mes-pad; \
proxy_set_header X-Real-IP \$remote_addr; \
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \
} \
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
location / { \
root /var/mes/mes-pad/; \
index index.html index.htm; \
if (!-e \$request_filename) { \
rewrite ^(.*)\$ /index.html?s=\$1 last; \
break; \
} \
} \
access_log /var/log/nginx/access.log ; \
} " > /etc/nginx/conf.d/default.conf \
&& mkdir -p /var/mes \
&& mkdir -p /var/mes/mes-pad
ADD / /var/mes/mes-pad/
EXPOSE 80
EXPOSE 443
...@@ -21,8 +21,9 @@ const config = { ...@@ -21,8 +21,9 @@ const config = {
} }
// 设置后台接口服务的基础地址 // 设置后台接口服务的基础地址
// config.baseUrl = 'http://localhost:8080'; //config.baseUrl = 'http://localhost:8080';
//config.baseUrl = "http://101.43.244.58:8080/"; //config.baseUrl = "http://101.43.244.58:8080/";
config.baseUrl = "/api"; //config.baseUrl = "/api";
config.baseUrl = "http://101.200.162.168:8080";
export default config; export default config;
\ No newline at end of file
import Vue from 'vue' import Vue from 'vue'
import { mergeRecursive } from "@/utils/ruoyi"; import {
mergeRecursive
} from "@/utils/ruoyi";
import DictMeta from './DictMeta' import DictMeta from './DictMeta'
import DictData from './DictData' import DictData from './DictData'
...@@ -22,7 +24,9 @@ export default class Dict { ...@@ -22,7 +24,9 @@ export default class Dict {
init(options) { init(options) {
if (options instanceof Array) { if (options instanceof Array) {
options = { types: options } options = {
types: options
}
} }
const opts = mergeRecursive(DEFAULT_DICT_OPTIONS, options) const opts = mergeRecursive(DEFAULT_DICT_OPTIONS, options)
if (opts.types === undefined) { if (opts.types === undefined) {
...@@ -66,10 +70,13 @@ function loadDict(dict, dictMeta) { ...@@ -66,10 +70,13 @@ function loadDict(dict, dictMeta) {
.then(response => { .then(response => {
const type = dictMeta.type const type = dictMeta.type
let dicts = dictMeta.responseConverter(response, dictMeta) let dicts = dictMeta.responseConverter(response, dictMeta)
// #ifdef H5
if (!(dicts instanceof Array)) { if (!(dicts instanceof Array)) {
console.error('the return of responseConverter must be Array.<DictData>') console.error('the return of responseConverter must be Array.<DictData>')
dicts = [] dicts = []
} else if (dicts.filter(d => d instanceof DictData).length !== dicts.length) { } else
// #endif
if (dicts.filter(d => d instanceof DictData).length !== dicts.length) {
console.error('the type of elements in dicts must be DictData') console.error('the type of elements in dicts must be DictData')
dicts = [] dicts = []
} }
......
import { mergeRecursive } from "@/utils/ruoyi"; import {
mergeRecursive
} from "@/utils/ruoyi";
import DictOptions from './DictOptions' import DictOptions from './DictOptions'
/** /**
...@@ -25,7 +27,7 @@ export default class DictMeta { ...@@ -25,7 +27,7 @@ export default class DictMeta {
* @param {Object} options * @param {Object} options
* @returns {DictMeta} * @returns {DictMeta}
*/ */
DictMeta.parse= function(options) { DictMeta.parse = function(options) {
let opts = null let opts = null
if (typeof options === 'string') { if (typeof options === 'string') {
opts = DictOptions.metas[options] || {} opts = DictOptions.metas[options] || {}
......
...@@ -64,6 +64,9 @@ const install = (Vue, vm) => { ...@@ -64,6 +64,9 @@ const install = (Vue, vm) => {
//根据字典类型查询字典数据信息 //根据字典类型查询字典数据信息
getDicts: (params = {}) => vm.$u.get(config.adminPath + '/system/dict/data/type/' + params), getDicts: (params = {}) => vm.$u.get(config.adminPath + '/system/dict/data/type/' + params),
//根据字典类型查询字典数据信息
getIssusLinebyWorkorderCodes: (params = {}) => vm.$u.post(config.adminPath + '/mobile/wm/issueline/listByWorkorderCodes', params),
/** /**
* 工艺工序相关API * 工艺工序相关API
......
...@@ -2,21 +2,35 @@ ...@@ -2,21 +2,35 @@
import DataDict from '@/common/dict' import DataDict from '@/common/dict'
// import http from '@/common/http.api' // import http from '@/common/http.api'
const cache = {}; // 用于缓存已请求的字典数据
const install = (Vue, vm) => { const install = (Vue, vm) => {
Vue.use(DataDict, { Vue.use(DataDict, {
metas: { metas: {
'*': { '*': {
labelField: 'dictLabel', labelField: 'dictLabel',
valueField: 'dictValue', valueField: 'dictValue',
request(dictMeta) { request(dictMeta) {
return vm.$u.api.getDicts(dictMeta.type).then(res => res.data) if (cache[dictMeta.type]) {
return Promise.resolve(cache[dictMeta.type]);
} else {
// return vm.$u.api.getDicts(dictMeta.type).then(res => res.data)
return vm.$u.api.getDicts(dictMeta.type).then(res => {
cache[dictMeta.type] = res.data;
return res.data;
});
}
}, },
}, },
}, },
}) })
} }
const logout = () => {
Object.keys(cache).forEach(key => delete cache[key]);
};
export default { export default {
install, install,
logout
} }
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<div class="inputp"> <div class="inputp">
<div class="inputs"> <div class="inputs">
<u-icon name="search" size="35" class='searchimg' @click='search'/> <u-icon name="search" size="35" class='searchimg' @click='search'/>
<input type="text" v-model="searchval" :placeholder="placeholder" @blur="search" confirm-type="search" inputmode="search" ref='searchinput' :focus='isfocus' <input type="text" v-model="value" :placeholder="placeholder" confirm-type="search"
class='scaninput' @confirm='search' > inputmode="search" ref='searchinput' :focus='isfocus' class='scaninput' @input='search'>
<u-icon name="scan" size="35" class="scanimg" @click='clickscan'/> <u-icon name="scan" size="35" class="scanimg" @click='clickscan'/>
</div> </div>
</div> </div>
...@@ -13,27 +13,24 @@ ...@@ -13,27 +13,24 @@
export default { export default {
name: 'SearchInput', name: 'SearchInput',
props: { props: {
hasscanbtn: Boolean,//是否有扫码按钮 hasscanbtn: Boolean,
isfocus: Boolean,//是否默认focus isfocus: Boolean,
hasgosearch: Boolean,//是否要跳转到搜索界面 hasgosearch: Boolean,
types: Number,//跳转的时候的参数type值 types: Number,
placeholder: { placeholder: {
type: String, type: String,
default: '搜索车辆编号' default: '搜索车辆编号'
}, },
gourl: {//跳转的搜索页面 gourl: {
type: String, type: String,
default: '/pages/scan/scan' default: '/pages/scan/scan'
}
}, },
data() { value: {
return { type: String,
showsearchbtn: false, default: ''
searchval: '' }
};
}, },
methods: { methods: {
// 点击input的时候
clickinput() { clickinput() {
// var me = this; // var me = this;
// if (me.hasgosearch) { // if (me.hasgosearch) {
...@@ -43,19 +40,17 @@ export default { ...@@ -43,19 +40,17 @@ export default {
// }) // })
// } // }
}, },
// 搜索
search() { search() {
var me = this; var me = this;
if (me.searchval === '') { if (me.value === '') {
uni.showToast({ uni.showToast({
icon: 'none', icon: 'none',
title: '请先输入搜索内容' title: '请先输入搜索内容'
}) })
return; return;
} }
me.$emit('serach', me.searchval) me.$emit('serach', me.value)
}, },
// 点击扫码的时候
clickscan() { clickscan() {
var me = this; var me = this;
if (me.hasscanbtn) { if (me.hasscanbtn) {
...@@ -75,25 +70,19 @@ export default { ...@@ -75,25 +70,19 @@ export default {
code = arr[1]; code = arr[1];
} }
}) })
me.searchval = code; me.$emit('inputchange', code);
} }
}) })
} }
}, },
watch: { watch: {
searchval(v) { value(v) {
var me = this; var me = this;
me.$emit('inputchange', v) me.$emit('input', v)
if (v != '') {
me.showsearchbtn = true;
} else {
me.showsearchbtn = false;
}
} }
} }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.inputp { .inputp {
padding: 20upx; padding: 20upx;
......
...@@ -50,8 +50,15 @@ export default { ...@@ -50,8 +50,15 @@ export default {
text-align: center; text-align: center;
vertical-align: middle; vertical-align: middle;
padding: 0 15px; padding: 0 15px;
width: 100px; width: 120px;
height: 100px; height: 120px;
border-top: 1px solid #505462;
border-bottom: 1px solid #505462;
display: flex;
flex-wrap: wrap;
align-content: center;
flex-direction: column;
justify-content: center;
} }
.active { .active {
...@@ -59,7 +66,7 @@ export default { ...@@ -59,7 +66,7 @@ export default {
} }
.inActive { .inActive {
background-color: #0285ff; background-color: #4ea381;
} }
.tab-bar-item img { .tab-bar-item img {
......
{ {
"name" : "ktg-mes-pad", "name" : "ktg-mes-pad",
"appid" : "__UNI__ECAC3FC", "appid" : "__UNI__5750C3E",
"description" : "MES-PAD", "description" : "MES-PAD",
"versionName" : "1.0.0", "versionName" : "1.0.0",
"versionCode" : "100", "versionCode" : "100",
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
"usingComponents" : true, "usingComponents" : true,
"nvueStyleCompiler" : "uni-app", "nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3, "compilerVersion" : 3,
"screenOrientation" : [
"landscape-primary", //可选,字符串类型,支持横屏
"landscape-secondary" //可选,字符串类型,支持反向横屏
],
"splashscreen" : { "splashscreen" : {
"alwaysShowBeforeRender" : true, "alwaysShowBeforeRender" : true,
"waiting" : true, "waiting" : true,
...@@ -17,7 +21,14 @@ ...@@ -17,7 +21,14 @@
"delay" : 0 "delay" : 0
}, },
/* 模块配置 */ /* 模块配置 */
"modules" : {}, "modules" : {
"Barcode" : {},
"Webview-x5" : {},
"VideoPlayer" : {},
"Record" : {},
"Bluetooth" : {},
"Camera" : {}
},
/* 应用发布信息 */ /* 应用发布信息 */
"distribute" : { "distribute" : {
/* android打包配置 */ /* android打包配置 */
......
...@@ -28,6 +28,12 @@ ...@@ -28,6 +28,12 @@
"navigationBarBackgroundColor": "#F8F8F8", "navigationBarBackgroundColor": "#F8F8F8",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"backgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8",
"rpxCalcMaxDeviceWidth": 750,
// rpx 计算所支持的最大设备宽度,单位 px,默认值为 960
"rpxCalcBaseDeviceWidth": 375,
// rpx 计算使用的基准设备宽度,设备实际宽度超出 rpx 计算所支持的最大设备宽度时将按基准宽度计算,单位 px,默认值为 375
"rpxCalcIncludeWidth": 750,
// rpx 计算特殊处理的值,始终按实际的设备宽度计算,单位 rpx,默认值为 750
"app-plus": { "app-plus": {
"titleNView": false "titleNView": false
} }
......
...@@ -83,7 +83,6 @@ export default { ...@@ -83,7 +83,6 @@ export default {
.hengxian { .hengxian {
width: 35px; width: 35px;
margin-top: 10px;
} }
.divider { .divider {
......
<template> <template>
<view class="common-container"> <view class="common-container">
<!-- <view class="common-head">-->
<!-- <view class="header">-->
<!-- <view class="title">-->
<!-- MES宝申科技-->
<!-- </view>-->
<!-- <view class="workstation" @click="handleCommand('workstation')">-->
<!-- {{ this.vuex_workstation == null ? '请选择工作站' : this.vuex_workstation.workstationName }}-->
<!-- <u-icon name="edit-pen-fill" size="46" color="#2979ff"></u-icon>-->
<!-- </view>-->
<!-- <view class="user" @tap="handleUserTaped">-->
<!-- <view class="user-icon">-->
<!-- <img :src="userInfo.avatar"></img>-->
<!-- </view>-->
<!-- <view class="user-text">-->
<!-- {{ this.vuex_user.nickName }}-->
<!-- </view>-->
<!-- </view>-->
<!-- </view>-->
<!-- </view>-->
<view class="header"> <view class="header">
<view class="title"> <image mode="widthFix" class="header-logo" style="width: 110px;margin: 10px auto;display: block;"
<image mode="widthFix" style="width: 160rpx;margin: 40rpx 20rpx;display: block;" src="/static/logo.png"></image>
src="@/static/logo.png"></image>
</view>
<TabHeader></TabHeader> <TabHeader></TabHeader>
<u-button style="position: absolute;bottom: 50rpx;margin: 0 auto;" @click="handleUserTaped"> <view class="setting-body"
<u-icon name="setting" size="35"></u-icon> @click="handleUserTaped">
设置 <u-icon name="list" size="45" class="setting-icon"></u-icon>
</u-button> {{ this.vuex_user.nickName }}
</view>
</view> </view>
<view class="common-main"> <view class="common-main">
<ProdReport v-if="tabIndex === 'PRO'"></ProdReport> <ProdReport v-if="tabIndex === 'PRO'"></ProdReport>
...@@ -36,7 +16,7 @@ ...@@ -36,7 +16,7 @@
<QcContent v-else-if="tabIndex ==='QC'"></QcContent> <QcContent v-else-if="tabIndex ==='QC'"></QcContent>
<ProContent v-if="tabIndex === 'DV'"></ProContent> <ProContent v-if="tabIndex === 'DV'"></ProContent>
</view> </view>
<u-modal width="1680rpx" v-model="showWorkstationFlag" :showConfirmButton="false" :showCancelButton="true" <u-modal width="90%" v-model="showWorkstationFlag" :showConfirmButton="false" :showCancelButton="true"
title="请选择工作站" content="操作内容"> title="请选择工作站" content="操作内容">
<!-- <u-tabs :list="processList" :is-scroll="true" :current="currentFlag" name="processName" <!-- <u-tabs :list="processList" :is-scroll="true" :current="currentFlag" name="processName"
@change="getWorkstationList"> @change="getWorkstationList">
...@@ -79,6 +59,7 @@ import ProContent from "../mes/pro/index.vue" ...@@ -79,6 +59,7 @@ import ProContent from "../mes/pro/index.vue"
import GxContent from "../mes/gx/index.vue" import GxContent from "../mes/gx/index.vue"
import QcContent from "../mes/qc/index.vue" import QcContent from "../mes/qc/index.vue"
import ProdReport from "../mes/prodReport/index.vue" import ProdReport from "../mes/prodReport/index.vue"
import DictData from '@/components/DictData'
export default { export default {
name: 'HomePage', name: 'HomePage',
...@@ -140,7 +121,7 @@ export default { ...@@ -140,7 +121,7 @@ export default {
if (res.code === 200) { if (res.code === 200) {
this.processList = res.data; this.processList = res.data;
this.activeProcess = res.data[0].processCode; this.activeProcess = res.data[0].processCode;
this.getWorkstationList(0); this.getWorkstationList({index: 0});
} else { } else {
this.$u.toast("获取工序清单异常" + res.msg); this.$u.toast("获取工序清单异常" + res.msg);
} }
...@@ -176,8 +157,9 @@ export default { ...@@ -176,8 +157,9 @@ export default {
this.$u.toast(res.msg); this.$u.toast(res.msg);
} }
if (res.code == '200') { if (res.code === 200) {
setTimeout(() => { setTimeout(() => {
DictData.logout();
uni.reLaunch({ uni.reLaunch({
url: '/pages/sys/login/login' url: '/pages/sys/login/login'
}); });
...@@ -195,10 +177,9 @@ export default { ...@@ -195,10 +177,9 @@ export default {
<style> <style>
.common-container { .common-container {
width: 100%; width: 100vw;
height: 100vh; height: 100vh;
display: grid; display: flex;
grid-template-columns: 100px 1fr;
} }
.common-head { .common-head {
...@@ -211,13 +192,20 @@ export default { ...@@ -211,13 +192,20 @@ export default {
} }
.header { .header {
width: 200rpx; width: 120px;
background-color: #132138; background-color: #132138;
color: aliceblue; color: aliceblue;
font-size: 25px; font-size: 25px;
font-family: 华文楷体; font-family: 华文楷体;
line-height: 80rpx; line-height: 80rpx;
height: inherit; height: inherit;
.header-logo {
width: 200rpx;
height: auto;
margin: 40rpx auto;
display: block;
}
} }
.header .divItem { .header .divItem {
...@@ -225,9 +213,6 @@ export default { ...@@ -225,9 +213,6 @@ export default {
align-items: center; align-items: center;
} }
.header .title {
width: 30%;
}
.header .workstation { .header .workstation {
text-align: center; text-align: center;
...@@ -278,10 +263,26 @@ img { ...@@ -278,10 +263,26 @@ img {
} }
.common-main { .common-main {
flex: 1;
height: 100%;
padding: 6px 6px 6px 0; padding: 6px 6px 6px 0;
margin: 0; margin: 0;
width: 100%; width: 100%;
overflow: auto; overflow: auto;
background-image: linear-gradient(to top right, rgb(19 26 56), rgb(33 64 128)); background-image: linear-gradient(to top right, rgb(19 26 56), rgb(33 64 128));
} }
.setting-body {
position: absolute;
bottom: 20rpx;
width: 200rpx;
margin: 0 auto;
font-size: 36rpx;
font-weight: initial;
text-align: center;
.setting-icon {
margin: 10rpx 10rpx;
}
}
</style> </style>
This diff is collapsed.
...@@ -3,13 +3,13 @@ ...@@ -3,13 +3,13 @@
<view class="button-bar"> <view class="button-bar">
<view class="button-frame" @click="addQC('QCMSG')"> <view class="button-frame" @click="addQC('QCMSG')">
<view class="shortcut-icon icon-color01"> <view class="shortcut-icon icon-color01">
<img class="icon-button" :src="require('@/static/icons/png/pro.png')" alt=""> <image class="icon-button" src="/static/icons/png/pro.png"/>
</view> </view>
<view class="grid-text">检查通知</view> <view class="grid-text">检查通知</view>
</view> </view>
<view class="button-frame" v-for="qcType in dict.type.mes_ipqc_type" @click="addQC(qcType.value )"> <view class="button-frame" v-for="qcType in dict.type.mes_ipqc_type" @click="addQC(qcType.value )">
<view class="shortcut-icon icon-color01"> <view class="shortcut-icon icon-color01">
<img class="icon-button" :src="require('@/static/icons/png/pro.png')" alt=""> <image class="icon-button" src="/static/icons/png/pro.png" />
</view> </view>
<view class="grid-text">{{ qcType.label }}</view> <view class="grid-text">{{ qcType.label }}</view>
</view> </view>
...@@ -18,6 +18,10 @@ ...@@ -18,6 +18,10 @@
<view class="list-bar"> <view class="list-bar">
<scroll-view scroll-y="true" class="scroll-list" :style="{ 'height': (this.screenHeight -280) + 'px' }"> <scroll-view scroll-y="true" class="scroll-list" :style="{ 'height': (this.screenHeight -280) + 'px' }">
<uni-table ref="qcTable" border stripe :loading="loading" emptyText="未查询到数据"> <uni-table ref="qcTable" border stripe :loading="loading" emptyText="未查询到数据">
<!-- <zb-table :columns="tableColumn" :stripe="true" @rowClick="rowClick"-->
<!-- @toggleRowSelection="toggleRowSelection" @toggleAllSelection="toggleAllSelection" :border="true"-->
<!-- :data="tableData"></zb-table>-->
<uni-tr> <uni-tr>
<uni-th width="160px" align="center">检验单编号</uni-th> <uni-th width="160px" align="center">检验单编号</uni-th>
<uni-th width="160px" align="center">检验单名称</uni-th> <uni-th width="160px" align="center">检验单名称</uni-th>
...@@ -70,19 +74,19 @@ ...@@ -70,19 +74,19 @@
</view> </view>
</view> </view>
<u-modal width="1800rpx" v-model="qcModalFlag" :showConfirmButton=true :showCancelButton="true" <u-modal width="90%" v-model="qcModalFlag" :showConfirmButton=true :showCancelButton="true"
title="请填写检验单" title="请填写检验单"
content="操作内容"> content="操作内容">
<u-form ref="qcForm" label-width="70px" :model="qcForm" :rules="qcRules"> <u-form ref="qcForm" label-width="70px">
<u-row> <u-row>
<u-col span="5"> <u-col span="5">
<u-form-item label="任务编号" prop="taskCode"> <u-form-item label="任务编号">
<SearchInput v-model="qcForm.taskCode" placeholder="请输入任务编号" hassearchbtn="true" <SearchInput v-model="qcForm.taskCode" placeholder="请输入任务编号" hassearchbtn="true"
@serach="searchTask"/> @serach="searchTask"/>
</u-form-item> </u-form-item>
</u-col> </u-col>
<u-col span="3"> <u-col span="3">
<u-form-item label="检验单名称" label-width="90px" prop="ipqcName"> <u-form-item label="检验单名称" label-width="90px">
<u-input v-model="qcForm.ipqcName" placeholder="请输入检验单名称"></u-input> <u-input v-model="qcForm.ipqcName" placeholder="请输入检验单名称"></u-input>
</u-form-item> </u-form-item>
</u-col> </u-col>
...@@ -122,7 +126,16 @@ ...@@ -122,7 +126,16 @@
</u-form-item> </u-form-item>
</u-col> </u-col>
</u-row> </u-row>
<u-button type="primary" @click="submitIpqc" class="submit-qc">提交</u-button> <u-row>
<u-col span="3"></u-col>
<u-col span="3">
<u-button type="primary" @click="submitIpqc">保存</u-button>
</u-col>
<u-col span="1"></u-col>
<u-col span="3">
<u-button type="success" @click="submitIpqc('CONFIRMED')">完成</u-button>
</u-col>
</u-row>
</u-form> </u-form>
<scroll-view scroll-y="true" scroll-x="true" class="line-list"> <scroll-view scroll-y="true" scroll-x="true" class="line-list">
<view class="line-content"> <view class="line-content">
...@@ -164,7 +177,7 @@ ...@@ -164,7 +177,7 @@
</scroll-view> </scroll-view>
</u-modal> </u-modal>
<u-modal width="760px" v-model="qcMsgVisible" :showConfirmButton=false :showCancelButton="true" <u-modal width="80%" v-model="qcMsgVisible" :showConfirmButton=false :showCancelButton="true"
title="检验通知" content="操作内容"> title="检验通知" content="操作内容">
<uni-table class="line-table" border stripe :loading="loading" emptyText="未查询到数据"> <uni-table class="line-table" border stripe :loading="loading" emptyText="未查询到数据">
<uni-tr> <uni-tr>
...@@ -203,7 +216,7 @@ ...@@ -203,7 +216,7 @@
</u-form> </u-form>
</u-modal> </u-modal>
<u-modal width="600px" v-model="deffectModalFlag" @confirm="subQcdeffect" @cancel="getTemplateLineList" <u-modal width="80%" v-model="deffectModalFlag" @confirm="subQcdeffect" @cancel="getTemplateLineList"
confirm-text="提交" confirm-text="提交"
:showConfirmButton=true :showCancelButton=true :showConfirmButton=true :showCancelButton=true
title="缺陷登记"> title="缺陷登记">
...@@ -316,7 +329,8 @@ export default { ...@@ -316,7 +329,8 @@ export default {
this.taskInfo = res.data; this.taskInfo = res.data;
} }
}, },
async submitIpqc() {
async submitIpqc(status = 'PREPARE') {
if (!this.taskInfo) { if (!this.taskInfo) {
this.$u.toast('请输入任务单号!'); this.$u.toast('请输入任务单号!');
return return
...@@ -381,6 +395,7 @@ export default { ...@@ -381,6 +395,7 @@ export default {
}); });
}, },
addQC(type) { addQC(type) {
this.qcForm = {}
this.curQcType = type; this.curQcType = type;
if (type === 'QCMSG') { if (type === 'QCMSG') {
this.qcMsgVisible = true this.qcMsgVisible = true
...@@ -392,6 +407,7 @@ export default { ...@@ -392,6 +407,7 @@ export default {
qcLineClick(item) { qcLineClick(item) {
this.qcModalFlag = true; this.qcModalFlag = true;
this.qcForm = item this.qcForm = item
console.log(this.qcForm)
this.getTemplateLineList() this.getTemplateLineList()
}, },
qcLineItemClick(item) { qcLineItemClick(item) {
...@@ -449,7 +465,7 @@ export default { ...@@ -449,7 +465,7 @@ export default {
} }
.list-bar { .list-bar {
width: calc(100vw - 100px); width: calc(100vw - 130px);
} }
.button-bar { .button-bar {
...@@ -463,10 +479,14 @@ export default { ...@@ -463,10 +479,14 @@ export default {
.button-frame { .button-frame {
width: 80px; width: 80px;
height: 80px; height: 80px;
background-color: aliceblue; background-color: #76bd1d;
border-radius: 10px; border-radius: 10px;
box-shadow: 2px 2px 3px #888888; box-shadow: 2px 2px 3px #888888;
display: grid; display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
color: #FFFFFF;
place-items: center; place-items: center;
} }
...@@ -476,7 +496,7 @@ export default { ...@@ -476,7 +496,7 @@ export default {
} }
.shortcut-icon { .shortcut-icon {
width: 48px; width: 100%;
height: 48px; height: 48px;
align-items: center; align-items: center;
border-radius: 10px; border-radius: 10px;
...@@ -491,9 +511,6 @@ export default { ...@@ -491,9 +511,6 @@ export default {
font-size: 26px; font-size: 26px;
} }
.scroll-list {
height: ;
}
.line-list { .line-list {
width: 100%; width: 100%;
......
static/icons/png/pro.png

7 KB | W: | H:

static/icons/png/pro.png

3.97 KB | W: | H:

static/icons/png/pro.png
static/icons/png/pro.png
static/icons/png/pro.png
static/icons/png/pro.png
  • 2-up
  • Swipe
  • Onion skin
static/icons/png/qc.png

7.49 KB | W: | H:

static/icons/png/qc.png

2.83 KB | W: | H:

static/icons/png/qc.png
static/icons/png/qc.png
static/icons/png/qc.png
static/icons/png/qc.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<script> <script>
import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js' import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js'
import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js' import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js'
import props from './props.js';; import props from './props.js';
/** /**
* sticky 吸顶 * sticky 吸顶
* @description 该组件与CSS中position: sticky属性实现的效果一致,当组件达到预设的到顶部距离时, 就会固定在指定位置,组件位置大于预设的顶部距离时,会重新按照正常的布局排列。 * @description 该组件与CSS中position: sticky属性实现的效果一致,当组件达到预设的到顶部距离时, 就会固定在指定位置,组件位置大于预设的顶部距离时,会重新按照正常的布局排列。
......
...@@ -21,3 +21,4 @@ ...@@ -21,3 +21,4 @@
/* #ifdef H5 */ /* #ifdef H5 */
@import "./libs/css/style.h5.scss"; @import "./libs/css/style.h5.scss";
/* #endif */ /* #endif */
...@@ -17,8 +17,7 @@ module.exports = { ...@@ -17,8 +17,7 @@ module.exports = {
devServer: { devServer: {
proxy: { proxy: {
'/api': { '/api': {
//target: 'http://101.43.244.58:8080/', target: 'http://localhost:8080/',
target: 'http://192.168.3.91:8080/',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
'^/api': '' '^/api': ''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment