Mr.Zhang
2023-08-18 1cb57919fbfd5ccc9b0489d16391bcd4909e21f9
08.17
已添加63个文件
已删除6个文件
已修改22个文件
3069 ■■■■ 文件已修改
minipro_standard/App.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/common/config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/components/myTabber.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/main.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages.json 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/applyDetail/applyDetail.vue 602 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/applyList/applyList.vue 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/comApplyList/comApplyList.vue 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/index/index.vue 170 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/login/login.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/mine/mine.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/projectList/projectList.vue 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/uploadCheckData/uploadCheckData.vue 405 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/uploadServiceData/uploadServiceData.vue 477 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/pages/workbench/workbench.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/2@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/3@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ar_black@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/back.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/btn_saoma@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/btn_upload@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/btn_xinzeng@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/chuku_ic_cangku@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/chuku_ic_delete@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/daiban_btn_saoma@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/daiban_ic_daiban@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/daiban_ic_xiaoxi@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/default_404@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/default_loginfailed@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/default_weishouquan@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/diantong_open@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/gon1gdan_ic_saoma@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/gongdan_ic_saoma@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/gongdan_ic_shoudong@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_ar@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_close@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_delete@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_notpass@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_pass@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_pdf@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_play@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_saomiao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_search@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/ic_shenhe@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/jianyan_ic_saoma@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/loginError.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/login_bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/login_ic_code@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/login_ic_password@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/login_ic_phone@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/logo@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_bangding@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_change@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_gerenxinxi@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_shoujihao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_xitonggonggao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_xiugaimima@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/mine_ic_youxianghao@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_daiban@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_daiban_sel@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_gongzuotai@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_gongzuotai_sel@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_ic_back@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_kanban@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_kanban_sel@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_saoma@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_wode@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/nav_wode_sel@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/notfound.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/password_ic_tip@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/work_ic_guanli@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/static/zhongjian_ic_delete.png 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/store/index.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/api/index.js 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/request/requestInterceptors.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/util/request/responseInterceptors.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/base/BaseTable.vue 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/business/OperaSalaryParamWindow.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OperaPlanStaock.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OperaUserDeviceExtWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OperaWInboundExtWindow.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OperaWOutboundExtWindow.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OperaWrollOutStore.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/components/ext/OrderDistrubution.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/business/salaryParam.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/ext/plansExt.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/ext/salaryStatistic.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_standard/src/views/ext/workorderPutRecordExt.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
minipro_standard/App.vue
@@ -1,6 +1,9 @@
<script>
    console.log('app------');
    // import { pageCount } from '@/util/api/index.js'
    export default {
        onLaunch: function() {
            // pageCount({})
        },
        onShow: function() {
        },
minipro_standard/common/config.js
@@ -1,5 +1,5 @@
module.exports = {
    // baseUrl: 'http://106.14.20.42/test_hfznzz/',
    baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
    // baseUrl: 'http://192.168.0.35:10011/',
    // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/',
    baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api/'
}
minipro_standard/components/myTabber.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
<template>
    <view>
        <u-tabbar
            :value="index"
            @change="change"
            fixed
            activeColor="#222"
            inactiveColor="#666"
        >
            <u-tabbar-item text="待办">
                <view class="" slot="active-icon">
                    <image src="@/static/nav_daiban_sel@2x.png" class="icon-style" mode=""></image>
                </view>
                <view class="" slot="inactive-icon">
                    <image src="@/static/nav_daiban@2x.png" class="icon-style" mode=""></image>
                </view>
            </u-tabbar-item>
            <u-tabbar-item text="工作台">
                <view class="" slot="active-icon">
                    <image src="@/static/nav_gongzuotai_sel@2x.png" class="icon-style" mode=""></image>
                </view>
                <view class="" slot="inactive-icon">
                    <image src="@/static/nav_gongzuotai@2x.png" class="icon-style" mode=""></image>
                </view>
            </u-tabbar-item>
            <u-tabbar-item text="我的">
                <view class="" slot="active-icon">
                    <image src="@/static/nav_wode_sel@2x.png" class="icon-style" mode=""></image>
                </view>
                <view class="" slot="inactive-icon">
                    <image src="@/static/nav_wode@2x.png" class="icon-style" mode=""></image>
                </view>
            </u-tabbar-item>
        </u-tabbar>
    </view>
</template>
<script>
    export default {
        name:"myTabbar",
        props: {
            index: 0
        },
        data() {
            return {
                value: 0
            };
        },
        methods: {
            click(index) {
                // console.log('click', index);
                // this.$nextTick(() => {
                //     this.value = index
                //     if (index==0) {
                //         uni.switchTab({
                //             url: '/pages/index/index'
                //         });
                //     } else if (index== 1) {
                //         uni.switchTab({
                //             url: '/pages/service/service'
                //         });
                //     }else {
                //         uni.switchTab({
                //             url: '/pages/mine/mine'
                //         });
                //     }
                // })
            },
            change(index) {
                this.$nextTick(() => {
                    this.value = index
                })
                console.log(this.value);
                if (index==0) {
                    // console.log('index');
                    uni.switchTab({
                        url: '/pages/index/index'
                    });
                } else if (index== 1) {
                    // console.log('workbench');
                    uni.switchTab({
                        url: '/pages/workbench/workbench'
                    });
                }else {
                    // console.log('mine');
                    uni.switchTab({
                        url: '/pages/mine/mine'
                    });
                }
            }
        },
    }
</script>
<style lang="scss" scope>
.icon-style {
    width: 44rpx;
    height: 44rpx;
}
</style>
minipro_standard/main.js
@@ -1,20 +1,23 @@
import Vue from 'vue'
import App from './App'
// vuex
import store from './store'
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'
Vue.use(uView)
console.log(uni.$u);
// #ifdef MP
// å¼•å…¥uView对小程序分享的mixin封装
const mpShare = require('@/uni_modules/uview-ui/libs/mixin/mpShare.js')
@@ -22,13 +25,14 @@
// #endif
Vue.mixin(mixin)
// å¼•入请求封装
const app = new Vue({
    store,
  ...App
})
// å¼•入请求封装
require('./util/request/index')(app)
// èŽ·å–å¾…åŠžæ•°é‡
store.dispatch('getUpcomingNum')
app.$mount()
minipro_standard/pages.json
@@ -1,55 +1,32 @@
{
    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
        {
            "path": "pages/projectList/projectList",
            "path": "pages/workbench/workbench",
            "style": {
                "navigationBarTitleText": "项目列表",
                // "enablePullDownRefresh": true,
                "navigationStyle": "custom"
                "navigationBarTitleText": "工作台",
                "enablePullDownRefresh": false
            }
        
        },{
        },
        {
            "path": "pages/index/index",
            "style": {
                "navigationBarTitleText": "uni-app",
                "navigationStyle": "custom"
                "navigationBarTitleText": "待办"
            }
        }, {
            "path": "pages/applyList/applyList",
            "path": "pages/mine/mine",
            "style": {
                "navigationBarTitleText": "企业报名列表",
                "enablePullDownRefresh": false,
                "navigationBarBackgroundColor": "#F3F6F9"
            }
        }, {
            "path": "pages/comApplyList/comApplyList",
            "style": {
                "navigationBarTitleText": "企业报名列表",
                "navigationBarTitleText": "我的",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/applyDetail/applyDetail",
            "style": {
                "navigationBarTitleText": "企业报名详情",
        }
        ,{
            "path" : "pages/login/login",
            "style" :
            {
                "navigationBarTitleText": "登录",
                "enablePullDownRefresh": false,
                "navigationStyle": "custom"
            }
        }, {
            "path": "pages/uploadServiceData/uploadServiceData",
            "style": {
                "navigationBarTitleText": "上传服务数据",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/uploadCheckData/uploadCheckData",
            "style": {
                "navigationBarTitleText": "上传诊断数据",
                "enablePullDownRefresh": false
            }
        }
@@ -60,5 +37,31 @@
        "navigationBarBackgroundColor": "#F3F6F9",
        "backgroundColor": "#F3F6F9"
    },
    "tabBar": {
        "color": "#666666",
        "selectedColor": "#222222",
        "borderStyle": "black",
        "backgroundColor": "#fff",
        "list": [
            {
                "pagePath": "pages/index/index",
                "iconPath": "static/nav_daiban@2x.png",
                "selectedIconPath": "static/nav_daiban_sel@2x.png",
                "text": "待办"
            },
            {
                "pagePath": "pages/workbench/workbench",
                "iconPath": "static/nav_gongzuotai@2x.png",
                "selectedIconPath": "static/nav_gongzuotai_sel@2x.png",
                "text": "工作台"
            },
            {
                "pagePath": "pages/mine/mine",
                "iconPath": "static/nav_wode@2x.png",
                "selectedIconPath": "static/nav_wode_sel@2x.png",
                "text": "我的"
            }
        ]
    },
    "uniIdRouter": {}
}
minipro_standard/pages/applyDetail/applyDetail.vue
ÎļþÒÑɾ³ý
minipro_standard/pages/applyList/applyList.vue
ÎļþÒÑɾ³ý
minipro_standard/pages/comApplyList/comApplyList.vue
ÎļþÒÑɾ³ý
minipro_standard/pages/index/index.vue
@@ -1,44 +1,19 @@
<template>
    <view class="content">
        <view class="p40 nav bbox">
            <view class="">合肥市智改数转诊断服务平台</view>
            <view class="">欢迎登录</view>
        </view>
        <view class="p40 mt30">
            <u--input
                placeholder="请输入账号"
                prefixIcon="account"
                clearable
                v-model="form.account"
                prefixIconStyle="font-size: 40rpx;color: #AAAAAA"
            ></u--input>
            <view class="p20"></view>
            <u--input
                placeholder="请输入密码"
                prefixIcon="lock"
                password
                clearable
                v-model="form.password"
                prefixIconStyle="font-size: 40rpx;color: #AAAAAA"
            ></u--input>
            <view class="ptb50"></view>
            <u-button
                :loading="logining"
                type="primary"
                color="#216EEE"
                text="登录"
                size="large"
                @click="loginAction"
            ></u-button>
        </view>
    <view>
        
        <myTabbar :index="0" />
    </view>
</template>
<script>
    // import { coustomLogin, wxEmpower } from '@/util/api/index'
    
    import { coustomLogin, wxEmpower } from '@/util/api/index'
    import myTabbar from "@/components/myTabber.vue"
    export default {
        components: {
            myTabbar
        },
        data() {
            return {
                form: {
@@ -50,100 +25,53 @@
            }
        },
        onLoad() {
            uni.login({
                success: data => {
                    this.wxLogin(data.code)
                },
                fail: err => {
                    uni.$u.toast(err)
                }
            })
            // uni.login({
            //     success: data => {
            //         this.wxLogin(data.code)
            //     },
            //     fail: err => {
            //         uni.$u.toast(err)
            //     }
            // })
        },
        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)
                    })
            }
            // 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>
    .content {
        // display: flex;
        // flex-direction: column;
        // align-items: center;
        // justify-content: center;
        height: 100vh;
        background-color: #FFFFFF;
        .nav {
            
            width: 750rpx;
            height: 520rpx;
            background: linear-gradient(180deg, #C7EBFF 0%, #FFFFFF 100%);
            display: flex;
            flex-direction: column-reverse;
            color: #293C5B;
            :first-child {
                height: 52rpx;
                font-size: 36rpx;
                line-height: 52rpx;
            }
            :last-child {
                height: 80rpx;
                font-size: 56rpx;
                font-weight: 500;
                line-height: 80rpx;
                margin-bottom: 16rpx;
            }
        }
    }
    .logo {
        height: 200rpx;
        width: 200rpx;
        margin-top: 200rpx;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 50rpx;
    }
    .text-area {
        display: flex;
        justify-content: center;
    }
    .title {
        font-size: 36rpx;
        color: #8f8f94;
    }
</style>
minipro_standard/pages/login/login.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
    <view class="login-content plr60">
        <view class="login-bg">
            <image src="@/static/login_bg@2x.png" mode="aspectFill" class="bg-img"></image>
            <image src="@/static/logo@2x.png" mode="aspectFill" class="login-log img180"></image>
            <view class="tc title">DM云工厂</view>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox com-input flex input-height">
            <image src="@/static/login_ic_code@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="企业代码" border="none"></u--input>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox mt40 flex input-height">
            <image src="@/static/login_ic_phone@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="手机号" border="none"></u--input>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox mt40 flex input-height">
            <image src="@/static/login_ic_password@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="密码" border="none"></u--input>
        </view>
        <view class="login-btn mt80">立即登录</view>
    </view>
</template>
<script>
    export default {
        data() {
            return {
                bgImg: require('@/static/login_bg@2x.png')
            };
        }
    }
</script>
<style lang="scss" scoped>
.login-content {
    height: 100vh;
    background: #FFFFFF linear-gradient(180deg, rgba(66,117,252,0.2) 0%, rgba(66,117,252,0) 100%);
    .login-bg {
        position: relative;
        height: 812rpx;
        .bg-img {
            position: absolute;
            z-index: 1;
            width: 100%;
            height: 100%;
        }
        .login-log {
            // margin-top: ;
            margin: 356rpx auto 0 auto ;
            left: 0;
            right: 0;
            position: absolute;
        }
        .title {
            position: absolute;
            margin-top: 576rpx;
            left: 0;
            width: 100%;
            height: 60rpx;
            font-size: 44rpx;
            font-weight: 600;
            color: #333333;
            line-height: 60rpx;
        }
    }
    .input-height {
        height: 100rpx;
    }
    .com-input {
        margin-top: -60px;
    }
    .login-btn {
        height: 98rpx;
        background: #4275FC;
        box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(66,117,252,0.2);
        border-radius: 8rpx;
        text-align: center;
        font-size: 32rpx;
        font-weight: 500;
        color: #FFFFFF;
        line-height: 98rpx;
    }
}
</style>
minipro_standard/pages/mine/mine.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
<template>
    <view>
        <myTabbar :index="2" />
    </view>
</template>
<script>
    import myTabbar from "@/components/myTabber.vue"
    export default {
        components: {
            myTabbar
        },
        data() {
            return {
                form: {
                    account: '',
                    password: '',
                },
                logining: false,
                openId: ''
            }
        },
        onLoad() {
            // uni.login({
            //     success: data => {
            //         this.wxLogin(data.code)
            //     },
            //     fail: err => {
            //         uni.$u.toast(err)
            //     }
            // })
        },
        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>
</style>
minipro_standard/pages/projectList/projectList.vue
ÎļþÒÑɾ³ý
minipro_standard/pages/uploadCheckData/uploadCheckData.vue
ÎļþÒÑɾ³ý
minipro_standard/pages/uploadServiceData/uploadServiceData.vue
ÎļþÒÑɾ³ý
minipro_standard/pages/workbench/workbench.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
<template>
    <view>
        <myTabbar :index="1" />
    </view>
</template>
<script>
    import myTabbar from "@/components/myTabber.vue"
    export default {
        components: {
            myTabbar
        },
        data() {
            return {
            };
        },
        onLoad() {
            uni.hideTabBar()
            // uni.login({
            //     success: data => {
            //         this.wxLogin(data.code)
            //     },
            //     fail: err => {
            //         uni.$u.toast(err)
            //     }
            // })
        },
        methods: {
            // 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">
</style>
minipro_standard/static/2@2x.png
minipro_standard/static/3@2x.png
minipro_standard/static/@2x.png
minipro_standard/static/ar_black@2x.png
minipro_standard/static/back.png
minipro_standard/static/btn_saoma@2x.png
minipro_standard/static/btn_upload@2x.png
minipro_standard/static/btn_xinzeng@2x.png
minipro_standard/static/chuku_ic_cangku@2x.png
minipro_standard/static/chuku_ic_delete@2x.png
minipro_standard/static/daiban_btn_saoma@2x.png
minipro_standard/static/daiban_ic_daiban@2x.png
minipro_standard/static/daiban_ic_xiaoxi@2x.png
minipro_standard/static/default_404@2x.png
minipro_standard/static/default_loginfailed@2x.png
minipro_standard/static/default_weishouquan@2x.png
minipro_standard/static/diantong_open@2x.png
minipro_standard/static/gon1gdan_ic_saoma@2x.png
minipro_standard/static/gongdan_ic_saoma@2x.png
minipro_standard/static/gongdan_ic_shoudong@2x.png
minipro_standard/static/ic_ar@2x.png
minipro_standard/static/ic_close@2x.png
minipro_standard/static/ic_delete@2x.png
minipro_standard/static/ic_notpass@2x.png
minipro_standard/static/ic_pass@2x.png
minipro_standard/static/ic_pdf@2x.png
minipro_standard/static/ic_play@2x.png
minipro_standard/static/ic_saomiao@2x.png
minipro_standard/static/ic_search@2x.png
minipro_standard/static/ic_shenhe@2x.png
minipro_standard/static/jianyan_ic_saoma@2x.png
minipro_standard/static/loginError.png
minipro_standard/static/login_bg@2x.png
minipro_standard/static/login_ic_code@2x.png
minipro_standard/static/login_ic_password@2x.png
minipro_standard/static/login_ic_phone@2x.png
minipro_standard/static/logo@2x.png
minipro_standard/static/mine_bg@2x.png
minipro_standard/static/mine_ic_bangding@2x.png
minipro_standard/static/mine_ic_change@2x.png
minipro_standard/static/mine_ic_gerenxinxi@2x.png
minipro_standard/static/mine_ic_shoujihao@2x.png
minipro_standard/static/mine_ic_xitonggonggao@2x.png
minipro_standard/static/mine_ic_xiugaimima@2x.png
minipro_standard/static/mine_ic_youxianghao@2x.png
minipro_standard/static/nav_daiban@2x.png
minipro_standard/static/nav_daiban_sel@2x.png
minipro_standard/static/nav_gongzuotai@2x.png
minipro_standard/static/nav_gongzuotai_sel@2x.png
minipro_standard/static/nav_ic_back@2x.png
minipro_standard/static/nav_kanban@2x.png
minipro_standard/static/nav_kanban_sel@2x.png
minipro_standard/static/nav_saoma@2x.png
minipro_standard/static/nav_wode@2x.png
minipro_standard/static/nav_wode_sel@2x.png
minipro_standard/static/notfound.png
minipro_standard/static/password_ic_tip@2x.png
minipro_standard/static/work_ic_guanli@2x.png
minipro_standard/static/zhongjian_ic_delete.png
minipro_standard/store/index.js
@@ -1,5 +1,6 @@
import Vue from 'vue'
import Vuex from 'vuex'
import { pageCount } from '@/util/api/index.js'
Vue.use(Vuex) // vue的插件机制
@@ -20,6 +21,11 @@
        menuButtonWidth: menuButtonWidth || '0',
        statusbarHeight: statusbarHeight || '0',
        navHeight: navHeight || '0',
        // å¾…办数量
        upcomingNum: {
            d: 0,
            y: 0
        },
    },
    mutations: {
        setHeight(state, val) {
@@ -37,6 +43,10 @@
        SETUSERINFO(state, val) {
            state.userInfo = val
            uni.setStorageSync('userInfo', val);
        },
        SETNUM(state, val) {
            state.upcomingNum.d = val.d
            state.upcomingNum.y = val.y
        }
    },
    actions: {
@@ -56,6 +66,12 @@
                menuButtonWidth
            })
        },
        async getUpcomingNum() {
            let res = await pageCount({})
            if (res.code === 200) {
                content.commit('SETNUM', { d: res.data.startNum, y: res.data.endNum })
            }
        }
    }
})
minipro_standard/util/api/index.js
@@ -1,51 +1,18 @@
console.log('-----------');
const http = uni.$u.http
// ç™»å½•
export function coustomLogin(params) {
    return http.get('/wechat/ordinaryLogin', {params})
}
// å¾®ä¿¡æŽˆæƒ
export function wxEmpower(params) {
    return http.get('/wechat/wxEmpower', {params})
}
// åˆ†é¡µæŸ¥è¯¢é¡¹ç›®ä¿¡æ¯
export function projectPage(data) {
    return http.post('/wechat/project/page', data)
}
// æ ¹æ®é¡¹ç›®id分页查询企业报名数据
export function getPageByProjectId(data) {
    return http.post('/wechat/getPageByProjectId', data)
}
// æ ¹æ®ID查询报名详情
export function declaresDetail(id) {
    return http.get(`/wechat/declares/${id}`)
}
// æ ¹æ®ID查询报名详情
export function companyDetail(params) {
    return http.get(`/wechat/company/queryDetail`, { params })
}
// æ ¹æ®é¡¹ç›®id分页查询企业报名数据
export function serviceDetail(data) {
    return http.post('/wechat/declares/serviceDetail', data)
}
// æ ¹æ®ç»çº¬åº¦é€†è§£æžåœ°å€
export function getAddrByLatAndLng(params) {
    return http.get(`/wechat/getAddrByLatAndLng`, { params })
}
// æ ¹æ®ç”³æŠ¥ç¼–码查询最后一次核查或诊断数据
export function declareService({id, type}) {
    return http.post(`/wechat/declareService/${id}?type=${type}`)
}
// ä¸Šä¼ æ ¸æŸ¥èµ„æ–™-上传服务资料
export function uploadHCData(data) {
    return http.post(`/wechat/uploadHCData`, data)
// æŸ¥è¯¢ç»Ÿè®¡åˆ—表数量
export function pageCount(data) {
    return http.post('/ext/noticesExt/pageCount', data)
}
// é€€å‡ºç™»å½•
@@ -53,7 +20,3 @@
    return http.get(`/wechat/logout`)
}
// æ ¹æ®ç”³æŠ¥id查看申报进度
export function getDeclareHistoryList(data) {
    return http.post(`/wechat/getDeclareHistoryList`, data)
}
minipro_standard/util/request/requestInterceptors.js
@@ -6,6 +6,7 @@
    // console.log(vm)
    uni.$u.http.interceptors.request.use((config) => { // å¯ä½¿ç”¨async await åšå¼‚步操作
            // åˆå§‹åŒ–请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
            console.log('请求拦截');
            config.data = config.data || {}
            const token = vm.$store.state.token
            if (token) {
minipro_standard/util/request/responseInterceptors.js
@@ -2,7 +2,6 @@
 * å“åº”拦截
 * @param {Object} http 
 */
import { coustomLogin, wxEmpower } from '@/util/api/index'
module.exports = (vm) => {
    uni.$u.http.interceptors.response.use((response) => {
        /* å¯¹å“åº”成功做点什么 å¯ä½¿ç”¨async await åšå¼‚步操作*/
@@ -11,10 +10,11 @@
        const custom = response.config?.custom
        if (data.code !== 200) { // æœåŠ¡ç«¯è¿”å›žçš„çŠ¶æ€ç ä¸ç­‰äºŽ200,则reject()
            uni.$u.toast(data.message)
            if (data.code === 5112) {
            if (data.code === 401) {
                // console.log('未登录、登录失效');
                // æœªç™»å½•、登录失效
                uni.reLaunch({
                    url: '/pages/index/index'
                    url: '/pages/login/login'
                })
            }
            return Promise.reject(data)
web_standard/.env.development
@@ -24,5 +24,5 @@
# VUE_APP_BASE_URL = 'http://192.168.0.35:10021/'
# æµ‹è¯•服务器
# VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
web_standard/src/components/base/BaseTable.vue
@@ -262,7 +262,96 @@
      if (this.api == null) {
        throw new Error('The page is not initialized, you can use method \'this.config\' to initialize this page.')
      }
    },
    /**
 * æ•°å­—相加
 * @param {*} arg1
 * @param {*} arg2
 * @returns
 */
    accAdd(arg1, arg2) {
      return this.changeNum(arg1, arg2)
    },
    /**
     * æ•°å­—相减
     * @param {*} arg1
     * @param {*} arg2
     * @returns
     */
    accSub(arg1, arg2) {
      return this.changeNum(arg1, arg2, false)
    },
    /**
     * æ•°å­—相乘
     * @param {*} arg1
     * @param {*} arg2
     * @returns
     */
    accMul(arg1, arg2) {
      let m = 0;
      m = accAdd(m, getDecimalLength(arg1))
      m = accAdd(m, getDecimalLength(arg2))
      return getNum(arg1) * getNum(arg2) / Math.pow(10, m)
    },
    /**
     * æ•°å­—相除
     * @param {*} arg1
     * @param {*} arg2
     * @returns
     */
    accDiv(arg1, arg2) {
      let t1, t2;
      t1 = this.getDecimalLength(arg1)
      t2 = this.getDecimalLength(arg2)
      if (t1 - t2 > 0) {
        return (this.getNum(arg1) / this.getNum(arg2)) / Math.pow(10, t1 - t2)
      } else {
        return (this.getNum(arg1) / this.getNum(arg2)) * Math.pow(10, t2 - t1)
    }
    },
    changeNum(arg1 = '', arg2 = '', isAdd = true) {
      function changeInteger(arg, r, maxR) {
        if (r != maxR) {
          let addZero = ''
          for (let i = 0; i < maxR - r; i++) {
            addZero += '0'
          }
          arg = Number(arg.toString().replace('.', '') + addZero)
        } else {
          arg = this.getNum(arg)
        }
        return arg
      }
      let r1, r2, maxR, m;
      r1 = this.getDecimalLength(arg1)
      r2 = this.getDecimalLength(arg2)
      maxR = Math.max(r1, r2)
      arg1 = changeInteger(arg1, r1, maxR)
      arg2 = changeInteger(arg2, r2, maxR)
      m = Math.pow(10, maxR)
      if (isAdd) {
        return (arg1 + arg2) / m
      } else {
        return (arg1 - arg2) / m
      }
    },
    getDecimalLength(arg = '') {
      try {
        return arg.toString().split(".")[1].length
      } catch (e) {
        return 0
      }
    },
    getNum(arg = '') {
      return Number(arg.toString().replace(".", ""))
    }
  }
}
</script>
web_standard/src/components/business/OperaSalaryParamWindow.vue
@@ -196,7 +196,9 @@
          // if (!isEdit) {
          //   this.form.materialId = res[0]?res[0].materialId:''
          // }
          // this.selectMaterial(this.form.materialId)
          if (isEdit) {
            this.selectMaterial(this.form.materialId)
          }
        })
        .catch(err => {
          console.log(err)
web_standard/src/components/ext/OperaPlanStaock.vue
@@ -219,8 +219,8 @@
          layout="total, prev, pager, next, jumper"
          :total="pagination.total"
          @current-change="handlePageChange"
          background>
        </el-pagination>
          background
        ></el-pagination>
      </div>
    </SelectMaterail>
  </GlobalWindow>
web_standard/src/components/ext/OperaUserDeviceExtWindow.vue
@@ -18,7 +18,7 @@
        </el-select>
      </el-form-item>
      <el-form-item label="所属员工:" prop="userIds">
        <el-select v-model="form.userIds" multiple clearable filterable placeholder="请选择" @change="selectUser">
        <el-select v-model="form.userIds" reserve-keyword multiple clearable filterable placeholder="请选择" @change="selectUser">
          <el-option
            v-for="(item, index) in select()"
            :key="item.id"
web_standard/src/components/ext/OperaWInboundExtWindow.vue
@@ -126,8 +126,7 @@
    <SelectMaterail
      ref="selectMaterail"
      @selectData="selectData"
    >
    </SelectMaterail>
    ></SelectMaterail>
  </GlobalWindow>
</template>
web_standard/src/components/ext/OperaWOutboundExtWindow.vue
@@ -460,12 +460,26 @@
        },
        sorts: null
      }).then(res => {
        // console.log('res', res)
        this.pagination.total = res.total
        this.pagination.pageSize = res.capacity
        this.pagination.pageIndex = res.page
        this.tempMaterials = res.records
        this.isSelectMaterial = true
        // console.log('getTempMaterails', this.selectedAllMaterails)
        if (this.selectedAllMaterails[this.pagination.pageIndex]) {
          // debugger
          for (const item of this.selectedAllMaterails[this.pagination.pageIndex]) {
            this.$nextTick(() => {
              this.tempMaterials.forEach(tempItem => {
                if (tempItem.id === item.id) {
                  console.log(tempItem.mmodelUnionName);
                  this.$refs.materials.toggleRowSelection(tempItem, true)
                }
              })
            })
          }
        }
      }).catch(err => {
        this.$tip.error(err)
      })
@@ -475,8 +489,9 @@
      this.getTempMaterails()
    },
    handleSelectionChange (selectedRows) {
      // console.log(selectedRows)
      console.log(selectedRows)
      this.selectedAllMaterails[this.pagination.pageIndex] = selectedRows
      console.log(this.selectedAllMaterails);
    },
    selectData () {
      // console.log(this.selectedAllMaterails)
web_standard/src/components/ext/OperaWrollOutStore.vue
@@ -581,6 +581,18 @@
        this.pagination.pageIndex = res.page
        this.tempMaterials = res.records
        this.isSelectMaterial = true
        if (this.selectedAllMaterails[this.pagination.pageIndex]) {
          for (const item of this.selectedAllMaterails[this.pagination.pageIndex]) {
            this.$nextTick(() => {
              this.tempMaterials.forEach(tempItem => {
                if (tempItem.id === item.id) {
                  console.log(tempItem.mmodelUnionName);
                  this.$refs.materials.toggleRowSelection(tempItem, true)
                }
              })
            })
          }
        }
      }).catch(err => {
        this.$tip.error(err)
      })
@@ -592,6 +604,7 @@
    handleSelectionChange (selectedRows) {
      // console.log(selectedRows)
      this.selectedAllMaterails[this.pagination.pageIndex] = selectedRows
      console.log(this.selectedMaterails);
    },
    selectData () {
      console.log(this.selectedAllMaterails)
web_standard/src/components/ext/OrderDistrubution.vue
@@ -38,6 +38,7 @@
        <el-select 
          v-model="form.proUserList" 
          :disabled="!form.proGroupId" 
          reserve-keyword
          multiple 
          clearable
          filterable
web_standard/src/views/business/salaryParam.vue
@@ -62,7 +62,11 @@
        <el-table-column prop="materialName" label="物料名称" min-width="140px"></el-table-column>
        <el-table-column prop="materialCode" label="物料编码" min-width="100px"></el-table-column>
        <el-table-column prop="procedureName" label="工序名称" min-width="100px"></el-table-column>
        <el-table-column prop="salary" label="工资单价(元)" min-width="100px"></el-table-column>
        <el-table-column prop="salary" label="工资单价(元)" min-width="100px">
          <!-- <template slot-scope="{row}">
            {{ accDiv(row.salary, 100) }}
          </template> -->
        </el-table-column>
        <el-table-column prop="num" label="标准产出" min-width="100px">
          <template slot-scope="{row}">
            {{ (row.num == 0 || !row.num) ? '-' : row.num }}
web_standard/src/views/ext/plansExt.vue
@@ -3,8 +3,8 @@
  <keep-alive><TableLayout v-permissions="['ext:plansext:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form slot="search-form" ref="searchForm" :model="searchForm" label-suffix=":" label-width="110px" inline>
      <el-form-item label="搜索信息" prop="mixParam">
        <el-input v-model="searchForm.mixParam" placeholder="请输入物料名称/编码/工序名称" @keypress.enter.native="search"></el-input>
      <el-form-item label="物料信息" prop="mixParam">
        <el-input v-model="searchForm.mixParam" placeholder="请输入物料名称/编码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="成品计划" prop="workPlanCode">
        <el-input v-model="searchForm.workPlanCode" placeholder="请输入成品计划编码" @keypress.enter.native="search"></el-input>
@@ -71,19 +71,19 @@
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar">
        <!-- <li v-permissions="['ext:plansext:importExcel']">
        <li v-permissions="['ext:plansext:distribute']"><el-button type="primary" @click="plansDistribute">批量分配</el-button></li>
        <li v-permissions="['ext:plansext:importExcel']">
          <ImportButton
            text="导入"
            template-name="plans_import_template.xlsx"
            template-path="template/plans_import_template.xlsx"
            template-path="/template/plans_import_template.xlsx"
            action="/ext/plansExt/importBatch"
            @success="search"
          />
        </li> -->
        </li>
        <!-- <li v-permissions="['ext:plansext:create']"><el-button type="primary" @click="$refs.operaPlansExtWindow.open('新建生产计划')" >新建</el-button></li> -->
        <!-- <li v-permissions="['ext:plansext:publish']"><el-button type="primary" @click="planRelease" >发布</el-button></li> -->
        <li v-permissions="['ext:plansext:distribute']"><el-button type="primary" @click="plansDistribute">批量分配</el-button></li>
        <li v-permissions="['ext:plansext:exportExcel']"><el-button type="primary" :loading="isWorking.export" @click="exportExcel">导出</el-button></li>
        <!-- <li v-permissions="['ext:plansext:exportExcel']"><el-button type="primary" :loading="isWorking.export" @click="exportExcel">导出</el-button></li> -->
        <!-- <li v-permissions="['ext:plansext:planpink']"><el-button type="primary" @click="$refs.operaWTransferExtWindow.open('计划领料')">计划领料</el-button></li> -->
        <!-- <li v-permissions="['ext:plansext:stockpink']"><el-button type="primary" @click="$refs.operaPlanStaock.open('库存领料')">库存领料</el-button></li> -->
        <!-- <li v-permissions="['ext:plansext:delete']"><el-button type="danger" plain @click="deleteByIdInBatch">批量删除</el-button></li> -->
web_standard/src/views/ext/salaryStatistic.vue
@@ -60,18 +60,18 @@
        <el-table-column prop="userInfo.departName" label="部门" min-width="100px"> </el-table-column>
        <el-table-column prop="jijianSalary" label="计件工资" min-width="100px">
          <template slot-scope="{row}">
            {{ row.jijianSalary / 100 }}
            {{ accDiv(Math.round(row.jijianSalary), 100) }}
          </template>
        </el-table-column>
        <el-table-column prop="jishiSalary" label="计时工资" min-width="100px">
          <template slot-scope="{row}">
            {{ row.jishiSalary / 100 }}
            {{ accDiv(Math.round(row.jishiSalary), 100) }}
          </template>
        </el-table-column>
        <el-table-column prop="num" label="报工单总数" min-width="100px"></el-table-column>
        <el-table-column prop="totalSalary" label="小计工资(元)" min-width="100px">
          <template slot-scope="{row}">
            {{ row.totalSalary / 100 }}
            {{ accDiv(Math.round(row.totalSalary), 100) }}
          </template>
        </el-table-column>
       
web_standard/src/views/ext/workorderPutRecordExt.vue
@@ -120,19 +120,33 @@
            <span class="long-title-style">{{ row.procedureName }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="qualifiedNum" label="合格数量" min-width="100px">
        <!-- <el-table-column prop="qualifiedNum" label="合格数量" min-width="100px">
          <template slot-scope="{row}">
            <span class="valid-style">{{ row.qualifiedNum + row.umodel.name }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="unqualifiedNum" label="不良数量" min-width="100px">
          <template slot-scope="{row}">
            <span class="unvalid-style">{{ row.num + row.umodel.name}}</span>
            <!-- <span :class="row.materialDonetype==0 ? 'valid-style' : ''">{{ row.num + row.umodel.name }}</span> -->
            <span class="unvalid-style">{{ row.unqualifiedNum + row.umodel.name}}</span>
          </template>
        </el-table-column> -->
        <el-table-column prop="doneType" label="质量属性" min-width="100px">
           <template slot-scope="{row}">
            <span v-if="row.materialDonetype==0" class="valid-style">合格</span>
            <span v-else-if="row.materialDonetype==1" class="unvalid-style">不良</span>
            <span v-else>-</span>
          </template>
        </el-table-column>
        <el-table-column prop="num" label="报工数量" min-width="100px"></el-table-column>
        <!-- <el-table-column prop="amodel.code" label="工装器具" min-width="100px"></el-table-column> -->
        <el-table-column prop="num" label="数量" min-width="100px">
           <template slot-scope="{row}">
            <span :class="row.materialDonetype==0 ? 'valid-style' : 'unvalid-style'">{{ row.num + row.umodel.name }}</span>
           </template>
         </el-table-column>
        <!-- <el-table-column prop="num" label="报工数量" min-width="100px">
          <template slot-scope="{row}">
            {{ row.num + row.umodel.name }}
          </template>
        </el-table-column> -->
        <el-table-column prop="deviceCode" label="设备" show-overflow-tooltip min-width="100px">
          <template slot-scope="{row}">
            <span class="long-title-style" :title="row.deviceCode + ' | ' + row.deviceName">{{ row.deviceCode + ' | ' + row.deviceName}}</span>
@@ -264,7 +278,7 @@
        if (index === 0) {
          sums[index] = '合计';
          return;
        } else if (index === 4 || index === 6 || index === 8 || index === 10) {
        } else if (index === 4 || index === 8 || index === 10) {
          // || index === 8 || index === 9 || index === 16 || index === 17
          sums[index] = '-';
          return;