| | |
| | | # VUE_APP_API = 'https://hsky.doumee.com/doumeeplant_api/' |
| | | |
| | | # æµè¯ |
| | | # VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | VUE_APP_API = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | | # æ¼ç¤º |
| | | VUE_APP_API = 'https://www.mes.red/doumeeplant/' |
| | | # VUE_APP_API = 'https://www.mes.red/doumeeplant/' |
| | |
| | | <div class="content_total">å
±{{form.total}}æ¡æ°æ®</div> |
| | | <div class="content_list"> |
| | | <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)"> |
| | | <div class="content_list_item_name">{{item.name}} | {{item.dmodel.name}}</div> |
| | | <div class="content_list_item_name" v-if="item.dmodel">{{item.name}} | {{item.dmodel.name}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="content_list_item_content_item_label">计å人åï¼</div> |
| | | <div class="content_list_item_content_item_nr">{{info.usermodel.realname}}</div> |
| | | </div> |
| | | <div class="content_list_item_content_item"> |
| | | <div class="content_list_item_content_item_label">åé
æ°éï¼</div> |
| | | <div class="content_list_item_content_item_nr">{{info.createTime}}</div> |
| | | </div> |
| | | <div class="content_list_item_content_item"> |
| | | <div class="content_list_item_content_item_label">å®å·¥æ°éï¼</div> |
| | | <div class="content_list_item_content_item_nr" v-if="info.umodel">{{info.doneNum}}{{info.umodel.name}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <NotFound info="ææªåé
å·¥å" v-if="info.workorderList && info.workorderList.length === 0" /> |
| | | <template v-else> |
| | | <div class="details_timeline" v-for="(item, i) in info.workorderList" :key="i"> |
| | | <div class="details_list"> |
| | | <div class="details_list_item" v-for="(item, i) in info.workorderList" :key="i" @click="jump(item.id)"> |
| | | <div class="details_list_item_top"> |
| | | <span>{{ item.createUserName }}</span><span>{{ item.code }}</span> |
| | | </div> |
| | | <div class="details_list_item_center"> |
| | | <span>è¯åæ°ï¼{{ item.qualifiedNum }}</span><span>ä¸è¯æ°ï¼<span class="red">{{ item.unqualifiedNum }}</span></span> |
| | | </div> |
| | | <div class="details_list_item_bottom"> |
| | | <span>{{ item.createTime }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="details_timeline" v-for="(item, i) in info.workorderList" :key="i"> |
| | | <div class="details_timeline_header"> |
| | | <div class="details_timeline_header_code"> |
| | | <span>å·¥åç¼å·ï¼{{item.code}}</span> |
| | |
| | | <span v-if="item.status === 3" class="purple">å·²æ£éª</span> |
| | | <span v-if="item.status === 4">å·²æ¥å·¥</span> |
| | | <span v-if="item.status === 5">å·²å
¥åº</span> |
| | | <span v-if="item.status === 6">已忶</span> |
| | | <span v-if="item.status === 6">已忶</span> --> |
| | | <!-- <span v-if="item.status === 7">已忶</span>--> |
| | | <!-- <span v-if="item.status === 8">å·²å
³é</span>--> |
| | | </div> |
| | | <!-- </div> |
| | | <div class="details_timeline_item" v-if="item.produceDate"> |
| | | <div class="activedian"></div> |
| | | <div class="dian active"></div> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref, onMounted, watch } from 'vue' |
| | | import { useRoute } from "vue-router" |
| | | import { useRoute, useRouter } from "vue-router" |
| | | import { queryByID } from '@/apis/PlanningAPI' |
| | | import NotFound from '@/components/common/NotFound.vue' |
| | | |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | |
| | | // 详æ
æ°æ® |
| | | let info = ref({}) |
| | | let info:any = ref({}) |
| | | |
| | | let loading = ref<boolean>(true) |
| | | |
| | |
| | | info.value = res.data |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const jump = (id: any) => { |
| | | router.push({ name: 'workOrderReporting', query: { id } }) |
| | | } |
| | | |
| | | const proUserStr = (item: any) => { |
| | |
| | | } |
| | | } |
| | | } |
| | | .details_list { |
| | | width: 100%; |
| | | height: auto; |
| | | background-color: #FFFFFF; |
| | | margin-top: 20px; |
| | | .details_list_item { |
| | | width: 100%; |
| | | padding: 24px 30px; |
| | | box-sizing: border-box; |
| | | background-color: #FFFFFF; |
| | | border-bottom: 2px solid #F7F7F7; |
| | | &:last-child { |
| | | border: none !important; |
| | | } |
| | | .details_list_item_top { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | span { |
| | | &:first-child { |
| | | font-size: 30px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-right: 16px; |
| | | } |
| | | &:last-child { |
| | | font-size: 24px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | | .details_list_item_center { |
| | | width: 100%; |
| | | margin: 16px 0 20px 0; |
| | | .red { |
| | | color: #DE5243; |
| | | } |
| | | span { |
| | | &:first-child { |
| | | font-size: 26px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | margin-right: 100px; |
| | | } |
| | | &:last-child { |
| | | font-size: 26px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | .details_list_item_bottom { |
| | | span { |
| | | font-size: 24px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | color: #999999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .details_timeline { |
| | | padding: 30px; |
| | | background: #ffffff; |
| | |
| | | getDeviceByCondition({ procedureId: res.procedureId }) |
| | | .then(res1 => { |
| | | if (res1.code === 200) { |
| | | if (res1.data && res1.data.length > 0) |
| | | deviceId.value = res1.data[0].id |
| | | from.deviceId = res1.data[0].id |
| | | from.deviceName = res1.data[0].name |
| | |
| | | <div class="bh_zw"></div> |
| | | <div class="bg_footer"> |
| | | <div class="bg_footer_submit" v-if="typeView == 0" @click="submit">确认æ¥å·¥</div> |
| | | <div class="bg_footer_submit1" @click="jumpdj" v-if="proxy.$auth('h5:workorder:processRecord') && typeView == 1"> |
| | | <!-- proxy.$auth('h5:workorder:processRecord') && --> |
| | | <div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1"> |
| | | <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> |
| | | <span>æ°å¢ç¹æ£</span> |
| | | </div> |
| | |
| | | /*æ¯ä¸ªé¡µé¢å
Œ
±css */ |
| | | @import "@/uni_modules/uview-ui/index.scss"; |
| | | @import "common/css/lib.css"; |
| | | page { |
| | | background-color: #F3F6F9 !important; |
| | | }
|
| | | // page { |
| | | // background-color: #F3F6F9 !important; |
| | | // }
|
| | | </style> |
| | |
| | | fixed |
| | | activeColor="#222" |
| | | inactiveColor="#666" |
| | | > |
| | | :safeAreaInsetBottom="true"> |
| | | <u-tabbar-item text="å¾
å"> |
| | | <view class="" slot="active-icon"> |
| | | <image src="@/static/nav_daiban_sel@2x.png" class="icon-style" mode=""></image> |
| | |
| | | import Vue from 'vue' |
| | | import App from './App' |
| | | |
| | | |
| | | import mixin from './common/mixin' |
| | | |
| | | // å¼å
¥å
¨å±uView
|
| | | import uView from '@/uni_modules/uview-ui' |
| | | Vue.use(uView) |
| | | |
| | | // vuex
|
| | | import store from './store' |
| | | Vue.prototype.$store = store |
| | | store.dispatch('getHeight') |
| | | |
| | | Vue.config.productionTip = false |
| | | |
| | | App.mpType = 'app'
|
| | | |
| | | App.mpType = 'app' |
| | | console.log(uni.$u); |
| | | // #ifdef MP
|
| | | // å¼å
¥uView对å°ç¨åºå享çmixinå°è£
|
| | | const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare.js') |
| | | Vue.mixin(mpShare) |
| | | // #endif |
| | | |
| | | Vue.mixin(mixin) |
| | | // å¼å
¥è¯·æ±å°è£
|
| | | |
| | | // å¼å
¥è¯·æ±å°è£
|
| | | const app = new Vue({ |
| | | store,
|
| | | ...App
|
| | |
| | | "quickapp" : {}, |
| | | /* å°ç¨åºç¹æç¸å
³ */ |
| | | "mp-weixin" : { |
| | | "appid" : "wxf8f2d1ee4b273688", |
| | | "appid" : "wxcd2b89fd2ff065f8", |
| | | "setting" : { |
| | | "urlCheck" : false |
| | | "urlCheck" : false, |
| | | "es6" : true, |
| | | "postcss" : true, |
| | | "minified" : true |
| | | }, |
| | | "usingComponents" : true, |
| | | "requiredPrivateInfos": [ |
| | | "getLocation" |
| | | ], |
| | | "requiredPrivateInfos" : [ "getLocation" ], |
| | | "permission" : { |
| | | "scope.userLocation" : { |
| | | "desc" : "宿¶ä¸ä¼ å¾ç" |
| | |
| | | {
|
| | | "pages": [ //pagesæ°ç»ä¸ç¬¬ä¸é¡¹è¡¨ç¤ºåºç¨å¯å¨é¡µï¼åèï¼https://uniapp.dcloud.io/collocation/pages
|
| | | "pages": [
|
| | | { |
| | | "path": "pages/workbench/workbench", |
| | | "style": { |
| | | "navigationBarTitleText": "å·¥ä½å°", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | {
|
| | | "path": "pages/index/index",
|
| | |
| | | { |
| | | "navigationBarTitleText": "ç»å½", |
| | | "enablePullDownRefresh": false, |
| | | "navigationStyle": "custom" |
| | | } |
| | | |
| | | "navigationStyle": "custom" |
| | | }
|
| | | }
|
| | | ],
|
| | | "globalStyle": {
|
| | | "navigationBarTextStyle": "black",
|
| | | "navigationBarTitleText": "uni-app", |
| | | "navigationBarBackgroundColor": "#F3F6F9",
|
| | | "backgroundColor": "#F3F6F9"
|
| | | "navigationBarBackgroundColor": "#ffffff",
|
| | | "backgroundColor": "#ffffff"
|
| | | }, |
| | | "tabBar": { |
| | | "color": "#666666", |
| | |
| | | <template>
|
| | | <view> |
| | | |
| | | <view>
|
| | | <myTabbar :index="0" />
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | // import { coustomLogin, wxEmpower } from '@/util/api/index'
|
| | |
|
| | |
|
| | | import myTabbar from "@/components/myTabber.vue"
|
| | | export default {
|
| | | components: {
|
| | |
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | |
|
| | | |
| | | </style> |
| | |
| | | <template>
|
| | | <view>
|
| | |
|
| | | <myTabbar :index="2" />
|
| | | </view>
|
| | | <view>
|
| | | <div class="box">
|
| | | <div class="box_info" :style="{background: 'url(' + img + ')'}">
|
| | | <image src="@/static/2@2x.png" mode="widthFix" />
|
| | | <div class="box_info_box">
|
| | | <text>å¼ ä¸</text>
|
| | | <div class="box_info_box_x">
|
| | | <text>è±ç±³ç§æ</text>
|
| | | <image src="@/static/mine_ic_change@2x.png" alt="" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="box_function">
|
| | | <div class="box_function_item" v-for="(item, index) in MENU" :key="index">
|
| | | <div class="box_function_item_left">
|
| | | <image :src="item.icon" alt="" />
|
| | | <text>{{item.name}}</text>
|
| | | </div>
|
| | | <div class="box_function_item_right">
|
| | | <van-icon name="arrow" size="20" color="#CCCCCC" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="box_out"><text>éåºç»å½</text></div>
|
| | | </div>
|
| | | <myTabbar :index="2" />
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | |
| | | },
|
| | | data() {
|
| | | return {
|
| | | form: {
|
| | | account: '',
|
| | | password: '',
|
| | | },
|
| | | logining: false,
|
| | | openId: ''
|
| | | MENU: [ |
| | | { name: '个人信æ¯', url: '/personal/personalInformation', icon: require('@/static/mine_ic_gerenxinxi@2x.png') }, |
| | | // { name: 'ç³»ç»éç¥', url: '', icon: require('@/assets/icon/mine_ic_xitonggonggao@2x.png') }, |
| | | { name: 'æ´æ°ææºå·', url: '/personal/updatePhone', icon: require('@/static/mine_ic_shoujihao@2x.png') }, |
| | | { name: 'æ´æ°é®ç®±å·', url: '/personal/updateMailbox', icon: require('@/static/mine_ic_youxianghao@2x.png') }, |
| | | { name: 'æ«ç ç»å®è´¦å·', url: '', icon: require('@/static/mine_ic_bangding@2x.png') }, |
| | | { name: 'ä¿®æ¹å¯ç ', url: '/personal/changePassword', icon: require('@/static/mine_ic_xiugaimima@2x.png') }, |
| | | ],
|
| | | img: require('@/static/mine_bg@2x.png')
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | uni.hideTabBar()
|
| | | // uni.login({
|
| | | // success: data => {
|
| | | // this.wxLogin(data.code)
|
| | |
| | | // })
|
| | | },
|
| | | methods: {
|
| | | // loginAction() {
|
| | | // if (!this.form.account || !this.form.password) {
|
| | | // uni.$u.toast('è´¦å·æè
å¯ç ä¸è½ä¸ºç©º')
|
| | | // }
|
| | | // this.logining = true
|
| | | // coustomLogin({...this.form, openid: this.openId})
|
| | | // .then(res => {
|
| | | // this.$store.commit('SETTOKEN', res.token)
|
| | | // this.$store.commit('SETUSERINFO', res)
|
| | | // uni.navigateTo({
|
| | | // url:'/pages/projectList/projectList'
|
| | | // })
|
| | | // })
|
| | | // .finally(() => {
|
| | | // this.logining = false
|
| | | // })
|
| | | // },
|
| | | // wxLogin(code) {
|
| | | // wxEmpower({code})
|
| | | // .then(res => {
|
| | | // this.openId = res.openid
|
| | | // if (res.userInfo) {
|
| | | // this.$store.commit('SETTOKEN', res.userInfo.token)
|
| | | // this.$store.commit('SETUSERINFO', res.userInfo)
|
| | | // uni.navigateTo({
|
| | | // url:'/pages/projectList/projectList'
|
| | | // })
|
| | | // } |
| | | // })
|
| | | // .catch(err => {
|
| | | // uni.$u.toast(err)
|
| | | // })
|
| | | // }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | |
|
| | | .box {
|
| | | width: 100%;
|
| | | padding: 30rpx;
|
| | | box-sizing: border-box;
|
| | | .box_info {
|
| | | padding: 0 30rpx;
|
| | | height: 168rpx;
|
| | | border-radius: 16rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | background-repeat: no-repeat;
|
| | | background-size: cover;
|
| | | image {
|
| | | width: 88rpx;
|
| | | height: 88rpx;
|
| | | }
|
| | | .box_info_box {
|
| | | height: 88rpx;
|
| | | display: flex;
|
| | | margin-left: 30rpx;
|
| | | flex-direction: column;
|
| | | justify-content: space-between;
|
| | | .box_info_box_x {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | text {
|
| | | font-size: 26rpx;
|
| | | font-weight: 400;
|
| | | color: rgba(255, 255, 255, 0.8);
|
| | | }
|
| | | image {
|
| | | width: 26rpx;
|
| | | height: 26rpx;
|
| | | margin-left: 10rpx;
|
| | | }
|
| | | }
|
| | | text {
|
| | | font-size: 34rpx;
|
| | | font-weight: 500;
|
| | | color: #FFFFFF;
|
| | | }
|
| | | }
|
| | | }
|
| | | .box_function {
|
| | | margin-top: 30rpx;
|
| | | .box_function_item {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | height: 98rpx;
|
| | | border-bottom: 1rpx solid #E5E5E5;
|
| | | /*&:last-child {*/
|
| | | /* border: none;*/
|
| | | /*}*/
|
| | | .box_function_item_left {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | image {
|
| | | width: 36rpx;
|
| | | height: 36rpx;
|
| | | margin-right: 24rpx;
|
| | | }
|
| | | text {
|
| | | font-size: 30rpx;
|
| | | font-weight: 400;
|
| | | color: #222222;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | .box_out {
|
| | | position: fixed;
|
| | | bottom: 200rpx;
|
| | | left: 50%;
|
| | | transform: translate(-50%, 0);
|
| | | width: 350rpx;
|
| | | height: 88rpx;
|
| | | background: #F7F7F7;
|
| | | border-radius: 8rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | font-size: 30rpx;
|
| | | font-weight: 400;
|
| | | color: #333333;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <template>
|
| | | <view>
|
| | |
|
| | | <view class="index">
|
| | | <view class="menu">
|
| | | <view class="menu_list" v-for="(row, i) in 3" :key="i">
|
| | | <view class="menu_list_head">
|
| | | <span>常ç¨åè½</span>
|
| | | </view>
|
| | | <div class="menu_list_list">
|
| | | <view class="menu_list_item" v-for="item in list" :key="item.id" @click="jump(item)">
|
| | | <image :src="item.icon" mode="widthFix" />
|
| | | <span>{{item.label}}</span>
|
| | | </view>
|
| | | <view class="menu_list_zw"></view>
|
| | | <view class="menu_list_zw"></view>
|
| | | <view class="menu_list_zw"></view>
|
| | | </div>
|
| | | </view>
|
| | | </view>
|
| | | <myTabbar :index="1" />
|
| | | </view>
|
| | | </template>
|
| | |
| | | },
|
| | | data() {
|
| | | return {
|
| | |
|
| | | list: [
|
| | | {
|
| | | icon: require('@/static/logo@2x.png'),
|
| | | label: 'æµè¯'
|
| | | },
|
| | | {
|
| | | icon: require('@/static/logo@2x.png'),
|
| | | label: 'æµè¯'
|
| | | },
|
| | | {
|
| | | icon: require('@/static/logo@2x.png'),
|
| | | label: 'æµè¯'
|
| | | },
|
| | | {
|
| | | icon: require('@/static/logo@2x.png'),
|
| | | label: 'æµè¯'
|
| | | },
|
| | | {
|
| | | icon: require('@/static/logo@2x.png'),
|
| | | label: 'æµè¯'
|
| | | },
|
| | | {
|
| | | icon: require('@/static/logo@2x.png'),
|
| | | label: 'æµè¯'
|
| | | }
|
| | | ]
|
| | | };
|
| | | },
|
| | | onLoad() { |
| | |
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss">
|
| | |
|
| | | <style>
|
| | | page {
|
| | | background-color: #F7F7F7 !important;
|
| | | }
|
| | | </style>
|
| | | <style scoped lang="scss">
|
| | | .index {
|
| | | width: 100%;
|
| | | .menu {
|
| | | width: 100%;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | .menu_list {
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | padding: 30rpx;
|
| | | box-sizing: border-box;
|
| | | margin-bottom: 20rpx;
|
| | | background: white;
|
| | | &:last-child {
|
| | | margin-bottom: 0;
|
| | | }
|
| | | .menu_list_head {
|
| | | width: 100%;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | margin-bottom: 40rpx;
|
| | | span {
|
| | | font-size: 32rpx;
|
| | | font-family: PingFangSC-Medium, PingFang SC;
|
| | | font-weight: 500;
|
| | | color: #222222;
|
| | | }
|
| | | }
|
| | | .menu_list_list {
|
| | | width: 100%;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | flex-wrap: wrap;
|
| | | justify-content: space-between;
|
| | | .menu_list_zw {
|
| | | width: 20%;
|
| | | height: 0;
|
| | | }
|
| | | .menu_list_item {
|
| | | width: 20%;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | margin-top: 40rpx;
|
| | | &:nth-child(1) {
|
| | | margin: 0;
|
| | | }
|
| | | &:nth-child(2) {
|
| | | margin: 0;
|
| | | }
|
| | | &:nth-child(3) {
|
| | | margin: 0;
|
| | | }
|
| | | &:nth-child(4) {
|
| | | margin: 0;
|
| | | }
|
| | | &:nth-child(5) {
|
| | | margin: 0;
|
| | | }
|
| | | image {
|
| | | width: 88rpx;
|
| | | height: 88rpx;
|
| | | border-radius: 24rpx;
|
| | | overflow: hidden;
|
| | | }
|
| | | span {
|
| | | font-size: 24rpx;
|
| | | font-weight: 400;
|
| | | color: #333333;
|
| | | margin-top: 16rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | /* 对ååºæååç¹ä»ä¹ å¯ä½¿ç¨async await å弿¥æä½*/
|
| | | const data = response.data
|
| | | // èªå®ä¹åæ°
|
| | | const custom = response.config?.custom
|
| | | if (data.code !== 200) { // æå¡ç«¯è¿åçç¶æç ä¸çäº200ï¼åreject() |
| | | uni.$u.toast(data.message) |
| | | if (data.code === 401) { |
| | | // console.log('æªç»å½ãç»å½å¤±æ'); |
| | | // æªç»å½ãç»å½å¤±æ |
| | | uni.reLaunch({ |
| | | url: '/pages/login/login' |
| | | }) |
| | | } |
| | | return Promise.reject(data)
|
| | | } |
| | | // const custom = response.config?.custom
|
| | | // if (data.code !== 200) { // æå¡ç«¯è¿åçç¶æç ä¸çäº200ï¼åreject() |
| | | // uni.$u.toast(data.message) |
| | | // if (data.code === 401) { |
| | | // // console.log('æªç»å½ãç»å½å¤±æ'); |
| | | // // æªç»å½ãç»å½å¤±æ |
| | | // uni.reLaunch({ |
| | | // url: '/pages/login/login' |
| | | // }) |
| | | // } |
| | | // return Promise.reject(data)
|
| | | // } |
| | | // console.log(data.data);
|
| | | return data.data || {}
|
| | | }, (response) => {
|
| | |
| | |
|
| | |
|
| | | #æ±èæ¬å°
|
| | | VUE_APP_BASE_URL = 'http://192.168.0.35:10021/'
|
| | | # VUE_APP_BASE_URL = 'http://192.168.0.35:10021/'
|
| | |
|
| | | #ç¦æ¾
|
| | | VUE_APP_BASE_URL = 'http://192.168.0.36:10021/'
|
| | |
|
| | | #åç£ç£æ¬å°
|
| | | # VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
|
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="detail" label="夿³¨" align="center" min-width="180px"></el-table-column> |
| | | <el-table-column prop="updateUser" label="æä½äºº" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createUserName" label="æä½äºº" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createTime" label="æä½æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | |
| | | #VITE_BASE_URL='http://192.168.0.35:10021' |
| | | |
| | | # VITE_BASE_PATH='/doumeeplant_api' |
| | | <<<<<<< HEAD |
| | | # VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | | VITE_BASE_URL = 'https://www.mes.red/doumeeplant' |
| | | VITE_BASE_URL = 'https://www.mes.red/doumeeplant' |
| | | ======= |
| | | VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api' |
| | | # VITE_BASE_URL = 'https://www.mes.red/doumeeplant' |
| | | >>>>>>> 7550fb636fec7a84dbdea55196d97ed635d7ab10 |
| | |
| | | NODE_ENV = production |
| | | VITE_NAME = 'ç产ç¯å¢' |
| | | VITE_BASE_CONTEXT = 'screen' |
| | | VITE_BASE_PATH = '/doumeeplant' |
| | | VITE_BASE_URL = 'https://www.mes.red/doumeeplant/' |
| | | VITE_BASE_PATH = '/api' |
| | | VITE_BASE_URL = 'https://www.mes.red/doumeeplant' |
| | |
| | | VITE_NAME='æµè¯ç¯å¢' |
| | | VITE_BASE_CONTEXT='doumeeplant_screen' |
| | | VITE_BASE_PATH='/doumeeplant_api' |
| | | VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api/' |
| | | VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api' |
| | |
| | | <img v-if="!isFull" src="@/assets/img/ic_fullscreen@2x.png" class="full-ic" @click="fullChange"> |
| | | <img v-else src="@/assets/img/ic_exitfullscreen@2x.png" class="full-ic" @click="fullChange"> |
| | | <img src="@/assets/img/title_line@2x.png" class="right-line" alt=""> |
| | | |
| | | <template> |
| | | <v-mini-weather></v-mini-weather> |
| | | </template> |
| | | <div class="date"> |
| | | <div class="time">{{ tempDate.time }}</div> |
| | | <div class="day">{{ `${tempDate.date} ${tempDate.day}` }}</div> |
| | |
| | | import { reactive, toRefs, onMounted, computed } from 'vue'; |
| | | import { useCounterStore } from '@/stores/counter.js' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { vMiniWeather } from 'vue-mini-weather' |
| | | // export default { components: {vMiniWeather }} |
| | | const enterprise = useCounterStore() |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | |
| | | return enterprise.deviceNum |
| | | }) |
| | | const unqualifiedRate = computed(() => { |
| | | return +enterprise.unqualifiedRate.toFixed(2) |
| | | return enterprise.unqualifiedRate |
| | | }) |
| | | const title = computed(() => { |
| | | return enterprise.procedureName ? `${enterprise.procedureName}å·¥åºæ°æ®çæ¿` : 'DMäºå·¥å车é´å¤§å±' |
| | |
| | | } |
| | | }, 1000) |
| | | // console.log(date.getDay()); |
| | | |
| | | |
| | | }) |
| | | const back = () => { |
| | | enterprise.setProcedureName('') |
| | |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | |
| | | // width: 1920px; |
| | | // height: 1080px; |
| | | width: 100%; |
| | | height: 100%; |
| | | padding: 20px 30px; |
| | | overflow-y: scroll; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | padding: 30px; |
| | | // overflow-y: scroll; |
| | | box-sizing: border-box; |
| | | .header { |
| | | background-image: url('@/assets/img/bg_maintitle@2x.png'); |
| | | background-size: 100% 70px; |
| | | background-size: 100% 74px; |
| | | width: 100%; |
| | | height: 70px; |
| | | height: 74px; |
| | | display: flex; |
| | | padding-top: 1px; |
| | | padding-left: 20px; |
| | |
| | | } |
| | | } |
| | | .num-list { |
| | | margin-top: 20px; |
| | | margin-bottom: 20px; |
| | | margin-top: 24px; |
| | | margin-bottom: 27px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | height: 80px; |
| | | height: 88px; |
| | | color: white; |
| | | .num-item { |
| | | width: calc(25% - 50px); |
| | | height: 80px; |
| | | background-size: 100% 100%; |
| | | margin-right: 25px; |
| | | padding-left: 30px; |
| | |
| | | import { createRouter, createWebHashHistory } from 'vue-router' |
| | | import HomeView from '../views/HomeView.vue' |
| | | // import HomeView from '../views/HomeView.vue' |
| | | import indexView from '../views/index.vue' |
| | | import processView from '../views/process.vue' |
| | | // console.log(import.meta.env.VITE_BASE_CONTEXT); |
| | |
| | | routes: [ |
| | | { |
| | | path: '/', |
| | | redirect: '/home', |
| | | |
| | | }, |
| | | { |
| | | path: '/home', |
| | | name: 'home', |
| | | component: indexView |
| | | }, |
| | |
| | | |
| | | state: () => { |
| | | return { |
| | | companyId: '8', |
| | | departId: '', |
| | | companyId: window.sessionStorage.getItem('companyId'), |
| | | departId: window.sessionStorage.getItem('departId'), |
| | | delayNum: 0, // å»¶æè®¡åæ° |
| | | deviceNum: 0, // 仿¥çäº§è®¾å¤æ° |
| | | ingNum: 0, // æ§è¡ä¸è®¡åæ° |
| | |
| | | <span>è¿7天ä¸è¯ååå¸</span> |
| | | </div> |
| | | <div class="content_right_top_nr"> |
| | | |
| | | |
| | | <div class="content_right_top_nr_top" id="lineChrat"></div> |
| | | <div class="content_right_top_nr_bottom"> |
| | | <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0"> |
| | |
| | | </div> |
| | | <div id="pieChart"></div> |
| | | </div> |
| | | |
| | | |
| | | </div> |
| | | </div> |
| | | <!-- 设å¤å·¡æ£è®°å½ --> |
| | |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | |
| | | |
| | | // æ¥å·¥æ¥å¿ |
| | | getRecordLogPage(companyId.value, departId.value, { |
| | | capacity: 20, |
| | |
| | | |
| | | &:nth-child(5) { |
| | | flex: 3; |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { reactive, ref, toRefs, onMounted, onBeforeUnmount, onUnmounted } from 'vue' |
| | | import { reactive, ref, toRefs, onMounted, onUnmounted, nextTick } from 'vue' |
| | | import { getProcedurePlanData, getTop, getProcedurePlansList, getRecordLogPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js' |
| | | import { useCounterStore } from '@/stores/counter.js' |
| | | import { useRoute } from 'vue-router' |
| | |
| | | const route = useRoute() |
| | | const enterprise = useCounterStore() |
| | | let mainTimer = ref(null) |
| | | let planTimer = ref(null) |
| | | let reportTimer = ref(null) |
| | | let scrollTimer = ref(null) |
| | | let planContainer = ref(null) |
| | | let reportLogContainer = ref(null) |
| | | const data = reactive({ |
| | |
| | | { categoryName: '尺寸ä¸è¯', unqualifiedNum: 22 }, |
| | | { categoryName: 'æåç', unqualifiedNum: 5 }, |
| | | { categoryName: 'å
¶ä»', unqualifiedNum: 2 }, |
| | | ] |
| | | ], |
| | | planScroll: false, |
| | | reportScroll: false, |
| | | }) |
| | | |
| | | let { listData, top1, top2, baseNum, allBad, reportListData } = toRefs(data) |
| | | |
| | | // start() |
| | | onBeforeUnmount(() => { |
| | | clearTimeout(planTimer.value) |
| | | clearTimeout(reportTimer.value) |
| | | clearTimeout(mainTimer.value) |
| | | }) |
| | | onMounted(() => { |
| | | window.addEventListener('resize', () => { |
| | | console.log('resize'); |
| | | nextTick(() => { |
| | | setDayChart() |
| | | setTypeChart() |
| | | }) |
| | | }) |
| | | initData() |
| | | scrollTimer.value = setInterval(() => { |
| | | ListScroll() |
| | | reportScroll() |
| | | }, 100) |
| | | mainTimer.value = setInterval(() => { |
| | | initData() |
| | | }, 60000) |
| | |
| | | |
| | | |
| | | onUnmounted(() => { |
| | | clearTimeout(planTimer.value) |
| | | clearTimeout(reportTimer.value) |
| | | clearTimeout(scrollTimer.value) |
| | | clearTimeout(mainTimer.value) |
| | | }) |
| | | |
| | |
| | | getTop(enterprise.companyId, enterprise.departId, { procedureId: route.query.procedureId }) |
| | | .then(res => { |
| | | if (res.length) { |
| | | |
| | | data.baseNum = res[0].doneNum |
| | | data.top1 = [] |
| | | data.top2 = [] |
| | |
| | | getProcedurePlansList(enterprise.companyId, enterprise.departId, { procedureId: route.query.procedureId }) |
| | | .then(res => { |
| | | data.listData = res |
| | | start() |
| | | data.planScroll = true |
| | | }) |
| | | // æ¥å·¥æ¥å¿å页æ¥è¯¢ |
| | | getRecordLogPage(enterprise.companyId, enterprise.departId, { capacity: 20, page: 1, model: { procedureId: route.query.procedureId } }) |
| | | .then(res => { |
| | | data.reportListData = res.records |
| | | reportStart() |
| | | data.reportScroll = true |
| | | }) |
| | | getUnqualified7DayData(enterprise.companyId, enterprise.departId, route.query.procedureId) |
| | | .then(res => { |
| | | data.dayDistribution = res |
| | | data.allBad = res.reduce((accumulator, currentValue) => accumulator + currentValue.unqualifiedNum, 0) |
| | | setDayChart() |
| | | }) |
| | | getUnqualifiedCateData(enterprise.companyId, enterprise.departId, route.query.procedureId) |
| | | .then(res => { |
| | | data.typeDistribution = res |
| | | data.allBad = res.reduce((accumulator, currentValue) => accumulator + currentValue.unqualifiedNum, 0) |
| | | setTypeChart() |
| | | }) |
| | | } |
| | | |
| | | // é¼ æ ç§»å
¥ |
| | | function handleMouseEnter() { |
| | | clearTimeout(planTimer.value) |
| | | data.planScroll = false |
| | | } |
| | | function handleMouseLeave() { |
| | | start() |
| | | data.planScroll = true |
| | | } |
| | | |
| | | // é¼ æ ç§»é¤ |
| | | function handleMouseEnterReport() { |
| | | clearTimeout(reportTimer.value) |
| | | data.reportScroll = false |
| | | } |
| | | function handleMouseLeaveReport() { |
| | | reportStart() |
| | | data.reportScroll = true |
| | | } |
| | | |
| | | /** |
| | | * å·¥åºè®¡å |
| | | * å·¥åºè®¡åæ»å¨æ¹æ³ |
| | | */ |
| | | // å¼å¯å®æ¶å¨ |
| | | function start() { |
| | | clearTimeout(planTimer.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | // let speed = ref(100) |
| | | planTimer.value = setInterval(ListScroll, 100) |
| | | } |
| | | function ListScroll() { |
| | | if (!data.planScroll) return |
| | | let scrollDom = planContainer.value |
| | | if (!scrollDom) return |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | |
| | | scrollDom = planContainer.value |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 10) { |
| | | clearTimeout(planTimer.value) |
| | | if (scrollDom.children.length < 11) { |
| | | data.planScroll = false |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1.5 |
| | | scrollDom.scrollTop += 2 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | |
| | | } |
| | | } |
| | | /** |
| | | * æ¥å·¥æ¥å¿ |
| | | * æ¥å·¥æ¥å¿æ»å¨æ¹æ³ |
| | | */ |
| | | function reportStart() { |
| | | clearTimeout(reportTimer.value) |
| | | // 宿¶å¨è§¦å卿 |
| | | // let speed = ref(100) |
| | | reportTimer.value = setInterval(reportScroll, 100) |
| | | } |
| | | function reportScroll() { |
| | | if (!data.reportScroll) return |
| | | let scrollDom = reportLogContainer.value |
| | | if (!scrollDom) return |
| | | // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ |
| | |
| | | } else { |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length < 10) { |
| | | clearTimeout(reportTimer.value) |
| | | data.reportScroll = false |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 1.5 |
| | | scrollDom.scrollTop += 2 |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | |
| | | color: '#fff', |
| | | fontSize: 12 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: 40, |
| | | bottom: 40 |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | |
| | | */ |
| | | function setTypeChart() { |
| | | let dayChartDom = document.getElementById('type-distribution'); |
| | | console.log(dayChartDom); |
| | | let myChart = echarts.init(dayChartDom); |
| | | let legendData = [] |
| | | let seriesData = [] |
| | |
| | | flex: 1; |
| | | margin-right: 20px; |
| | | .proccess-plan { |
| | | height: 424px; |
| | | height: 464px; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .today-yield { |
| | | height: calc(100vh - 690px);; |
| | | height: calc(100vh - 725px); |
| | | min-height: 226px; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .yield-content { |
| | |
| | | flex: 1; |
| | | |
| | | .report-log { |
| | | height: 424px; |
| | | height: 464px; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .bad-diagram { |
| | | height:calc(100vh - 690px);; |
| | | height:calc(100vh - 725px);; |
| | | min-height: 226px; |
| | | background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%); |
| | | |
| | | .bad-content { |
| | |
| | | // https://vitejs.dev/config/ |
| | | export default defineConfig(({mode, command}) => { |
| | | let env = loadEnv(mode, process.cwd(), '') |
| | | console.log('-------'); |
| | | console.log(env.VITE_BASE_PATH); |
| | | console.log(env.VITE_BASE_PATH.replace(env.VITE_BASE_PATH, '')); |
| | | console.log('-------'); |
| | | return { |
| | | base:env.VITE_BASE_CONTEXT, |
| | | plugins: [ |
| | |
| | | changeOrigin: true, |
| | | ws: false, // å
许websocket代ç |
| | | secure: false, |
| | | <<<<<<< HEAD |
| | | rewrite: (path) => path.replace(env.VITE_BASE_PATH, '/') |
| | | } |
| | | ======= |
| | | rewrite: (path) => path.replace(env.VITE_BASE_PATH, '/'), |
| | | // rewrite: (path) => path.replace(/^\api/, ''), // å°apiæ¿æ¢ä¸ºç©º |
| | | }, |
| | | /*'/api' : { |
| | | target: env.VITE_BASE_URL, // éè¿ä»£çæ¥å£è®¿é®å®é
å°åãè¿éæ¯å®é
访é®çå°åãvueä¼éè¿ä»£çæå¡å¨æ¥ä»£çè¯·æ± |
| | | changeOrigin: true, |
| | | ws: false, // å
许websocket代ç |
| | | rewrite: (path) => path.replace(/^\api/, ''), // å°apiæ¿æ¢ä¸ºç©º |
| | | }*/ |
| | | >>>>>>> 7550fb636fec7a84dbdea55196d97ed635d7ab10 |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ", example = "1") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | @TableField(exist = false) |
| | | private String createUserName; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |