| | |
| | | # èå§æ¬å° |
| | | # VUE_APP_API = 'http://192.168.0.12:10012/' |
| | | |
| | | |
| | | # 任康æ¬å° |
| | | # VUE_APP_API = 'http://192.168.0.15:10021/' |
| | | |
| | |
| | | |
| | | # VUE_APP_API = 'http://192.168.0.15:10012/' |
| | | |
| | | |
| | | |
| | | # åç£ç£ |
| | | # VUE_APP_API = 'http://192.168.0.18:10012/' |
| | | # VUE_APP_API = 'http://192.168.0.18:10012/' |
| | |
| | | "axios": "^0.27.2", |
| | | "dingtalk-jsapi": "^2.13.92", |
| | | "echarts": "^4.8.0", |
| | | "js-sha1": "^0.6.0", |
| | | "jsqr": "^1.4.0", |
| | | "lib-flexible": "^0.3.2", |
| | | "mitt": "^3.0.0", |
| | |
| | | "vue": "^3.2.13", |
| | | "vue-pdf-embed": "^1.1.4", |
| | | "vue-router": "^4.0.3", |
| | | "vuex": "^4.0.0", |
| | | "weixin-js-sdk": "^1.6.0" |
| | | "vuex": "^4.0.0" |
| | | }, |
| | | "devDependencies": { |
| | | "@types/echarts": "^4.9.15", |
| | | "@types/js-sha1": "^0.6.0", |
| | | "@vue/cli-plugin-router": "~5.0.0", |
| | | "@vue/cli-plugin-typescript": "~5.0.0", |
| | | "@vue/cli-plugin-vuex": "~5.0.0", |
| | |
| | | "dependencies": { |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "node_modules/@types/js-sha1": { |
| | | "version": "0.6.0", |
| | | "resolved": "https://registry.npmjs.org/@types/js-sha1/-/js-sha1-0.6.0.tgz", |
| | | "integrity": "sha512-TBJguE0wDNgtAwL7TpjzPbj5Sz5fsIuTQbgyXDJ7nV1eExhE/kd3YNS/q6JSiPAdElcFoKY3zlSifzjb/vO6xw==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/@types/json-schema": { |
| | | "version": "7.0.11", |
| | |
| | | "engines": { |
| | | "node": ">=0.6.0" |
| | | } |
| | | }, |
| | | "node_modules/js-sha1": { |
| | | "version": "0.6.0", |
| | | "resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.6.0.tgz", |
| | | "integrity": "sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w==" |
| | | }, |
| | | "node_modules/js-tokens": { |
| | | "version": "4.0.0", |
| | |
| | | "node": ">=0.8.0" |
| | | } |
| | | }, |
| | | "node_modules/weixin-js-sdk": { |
| | | "version": "1.6.0", |
| | | "resolved": "https://registry.npmjs.org/weixin-js-sdk/-/weixin-js-sdk-1.6.0.tgz", |
| | | "integrity": "sha512-3IYQH7aalJGFJrwdT3epvTdR1MboMiH7vIZ5BRL2eYOJ12BNah7csoMkmSZzkq1+l92sSq29XdTCVjCJoK2sBQ==" |
| | | }, |
| | | "node_modules/whatwg-fetch": { |
| | | "version": "3.6.2", |
| | | "resolved": "https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", |
| | |
| | | "requires": { |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "@types/js-sha1": { |
| | | "version": "0.6.0", |
| | | "resolved": "https://registry.npmjs.org/@types/js-sha1/-/js-sha1-0.6.0.tgz", |
| | | "integrity": "sha512-TBJguE0wDNgtAwL7TpjzPbj5Sz5fsIuTQbgyXDJ7nV1eExhE/kd3YNS/q6JSiPAdElcFoKY3zlSifzjb/vO6xw==", |
| | | "dev": true |
| | | }, |
| | | "@types/json-schema": { |
| | | "version": "7.0.11", |
| | |
| | | "resolved": "https://registry.npmmirror.com/js-message/-/js-message-1.0.7.tgz", |
| | | "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", |
| | | "dev": true |
| | | }, |
| | | "js-sha1": { |
| | | "version": "0.6.0", |
| | | "resolved": "https://registry.npmjs.org/js-sha1/-/js-sha1-0.6.0.tgz", |
| | | "integrity": "sha512-01gwBFreYydzmU9BmZxpVk6svJJHrVxEN3IOiGl6VO93bVKYETJ0sIth6DASI6mIFdt7NmfX9UiByRzsYHGU9w==" |
| | | }, |
| | | "js-tokens": { |
| | | "version": "4.0.0", |
| | |
| | | "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz", |
| | | "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", |
| | | "dev": true |
| | | }, |
| | | "weixin-js-sdk": { |
| | | "version": "1.6.0", |
| | | "resolved": "https://registry.npmjs.org/weixin-js-sdk/-/weixin-js-sdk-1.6.0.tgz", |
| | | "integrity": "sha512-3IYQH7aalJGFJrwdT3epvTdR1MboMiH7vIZ5BRL2eYOJ12BNah7csoMkmSZzkq1+l92sSq29XdTCVjCJoK2sBQ==" |
| | | }, |
| | | "whatwg-fetch": { |
| | | "version": "3.6.2", |
| | |
| | | "axios": "^0.27.2", |
| | | "dingtalk-jsapi": "^2.13.92", |
| | | "echarts": "^4.8.0", |
| | | "js-sha1": "^0.6.0", |
| | | "jsqr": "^1.4.0", |
| | | "lib-flexible": "^0.3.2", |
| | | "mitt": "^3.0.0", |
| | |
| | | "vue": "^3.2.13", |
| | | "vue-pdf-embed": "^1.1.4", |
| | | "vue-router": "^4.0.3", |
| | | "vuex": "^4.0.0", |
| | | "weixin-js-sdk": "^1.6.0" |
| | | "vuex": "^4.0.0" |
| | | }, |
| | | "devDependencies": { |
| | | "@types/echarts": "^4.9.15", |
| | | "@types/js-sha1": "^0.6.0", |
| | | "@vue/cli-plugin-router": "~5.0.0", |
| | | "@vue/cli-plugin-typescript": "~5.0.0", |
| | | "@vue/cli-plugin-vuex": "~5.0.0", |
| | |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | // æ°å¢åºåº |
| | | export function createForStandard (data: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/ext/wOutboundExt/createForStandard', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // åºåè°æ´ãéè´å
¥åºå
¥åºåå建 |
| | | export function wOutBoundForStockUp (data: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/ext/wOutboundExt/wOutBoundForStockUp', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | |
| | | }) |
| | | } |
| | | |
| | | // è·å微信openId |
| | | export function wxLogin(params: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/system/wxLogin', |
| | | method: 'get', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | // 微信端ç»å½ |
| | | export function wxAccountLogin(data: any): Promise<any> { |
| | | return httpRequest({ |
| | | url: '/system/wxAccountLogin', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // è·åä¼ä¸id |
| | | export function getDingdingCorpId(companyId: any): Promise<any> { |
| | | return httpRequest({ |
| | |
| | | <van-popup |
| | | v-model:show="props.show" |
| | | position="bottom" |
| | | :style="{ height: props.height }"> |
| | | :style="{ height: '100%' }"> |
| | | <div class="title"> |
| | | <div class="close" @click="close"><van-icon name="arrow-down" size="30" color="#ffffff" /></div> |
| | | </div> |
| | |
| | | v-model:loading="loading" |
| | | :finished="finished" |
| | | finished-text="æ²¡ææ´å¤äº~" |
| | | @load="onLoad"> |
| | | @load="onLoad" |
| | | > |
| | | <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}}</div> |
| | |
| | | systemDicDataId: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | height: { |
| | | type: String, |
| | | default: '100%' |
| | | } |
| | | }) |
| | | |
| | |
| | | component: () => import('@/views/needToBeDealtWith/warehousing.vue') |
| | | }, |
| | | { |
| | | path: '/needToBeDealtWith/outbound', |
| | | name: 'outbound', |
| | | meta: { |
| | | title: 'æ°å¢åºåº', |
| | | keepAlive: false |
| | | }, |
| | | component: () => import('@/views/needToBeDealtWith/outbound.vue') |
| | | }, |
| | | { |
| | | path: '/needToBeDealtWith/addWarehousing', |
| | | name: 'addWarehousing', |
| | | meta: { |
| | | title: 'æ°å¢å
¥åº', |
| | | keepAlive: false |
| | | }, |
| | | component: () => import('@/views/needToBeDealtWith/addWarehousing.vue') |
| | | }, |
| | | { |
| | | path: '/needToBeDealtWith/codeScanningWarehousing', |
| | | name: 'codeScanningWarehousing', |
| | | meta: { |
| | |
| | | path: '/productionInspection/manualInspection', |
| | | name: 'manualInspection', |
| | | meta: { |
| | | title: '巡线', |
| | | title: 'æå¨æ£éª', |
| | | keepAlive: true |
| | | }, |
| | | component: () => import('@/views/productionInspection/manualInspection.vue') |
| | | }, |
| | | { |
| | | path: '/productionInspection/manualInspection1', |
| | | name: 'manualInspection1', |
| | | meta: { |
| | | title: 'å·¡æ£', |
| | | keepAlive: true |
| | | }, |
| | | component: () => import('@/views/productionInspection/manualInspection1.vue') |
| | | }, |
| | | { |
| | | path: '/productionInspection/manualInspection2', |
| | | name: 'manualInspection2', |
| | | meta: { |
| | | title: 'å®å·¥æ£', |
| | | keepAlive: true |
| | | }, |
| | | component: () => import('@/views/productionInspection/manualInspection2.vue') |
| | | }, |
| | | { |
| | | path: '/productionInspection/selectWorkOrder', |
| | |
| | | keepAlive: false |
| | | }, |
| | | component: () => import('@/views/workOrder/location.vue') |
| | | }, |
| | | { |
| | | path: '/workOrder/reportingForWork', |
| | | name: 'reportingForWork', |
| | | meta: { |
| | | title: 'ä¸é®æ¥å·¥', |
| | | keepAlive: false |
| | | }, |
| | | component: () => import('@/views/workOrder/reportingForWork.vue') |
| | | } |
| | | ] |
| | | } |
| | |
| | | import * as dd from 'dingtalk-jsapi' |
| | | import sha1 from 'js-sha1' |
| | | import store from '@/store' |
| | | |
| | | /** |
| | | * è·åå½åæ¶é´ æ¶é´æ³ |
| | | * @returns {number} |
| | | */ |
| | | export function getTimestamp () { |
| | | return new Date().getTime() |
| | | } |
| | | |
| | | /** |
| | | * è·åéæºå符串 |
| | | * @param {number} len 坿å®é¿åº¦ |
| | | * @returns {string} |
| | | */ |
| | | export function randomString (len: number): string { |
| | | len = len || 32 |
| | | let $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678' |
| | | let maxPos = $chars.length |
| | | let pwd = '' |
| | | for (let i = 0; i < len; i++) { |
| | | pwd += $chars.charAt(Math.floor(Math.random() * maxPos)) |
| | | } |
| | | return pwd |
| | | } |
| | | |
| | | /** |
| | | * æ¼æ¥ç¾åå符串 |
| | | * @param {string} ticket éè¿access_tokenè·åçjsapi_ticket |
| | | * @param {string} noncestr èªå·±çæçéæºå符串 |
| | | * @param {string} timestamp çæç¾åæ¶çæ¶é´æ³ |
| | | * @param {string} urlLink urlå°åè·åcode |
| | | * @param {string} return {*} |
| | | */ |
| | | export function getSignature (ticket: String, noncestr: String, timestamp: String, urlLink: String): String { |
| | | let url = urlLink |
| | | let jsapi_ticket = `jsapi_ticket=${ticket}&noncestr=${noncestr}×tamp=${timestamp}&url=${url}` |
| | | return sha1(jsapi_ticket) |
| | | } |
| | | |
| | | /*** |
| | | * phoneRegular: ææºå·éªè¯ |
| | |
| | | window.localStorage.setItem('token', res.data) |
| | | let info: any = await getUserInfo() |
| | | if (info.code === 200) { |
| | | await store.commit('setEntrance', 'H5') |
| | | // await store.commit('setEntrance', 'H5') |
| | | await store.commit('setUserInfo', info.data) |
| | | await store.dispatch('getMenuList', 2) |
| | | await router.go(-1) |
| | |
| | | <div class="inspection_list"> |
| | | <div class="inspection_list_item"> |
| | | <span>æ£éªç±»å</span> |
| | | <!-- <div class="right"> |
| | | <div class="right_item" :class="{ 'active': item.active }" v-for="(item, index) in status" :key="index" @click="changeItem(index, item.id)">{{item.name}}</div> |
| | | </div> --> |
| | | <div class="right"> |
| | | <div class="right_item active">巡线</div> |
| | | <!-- <div class="right_item active" v-if="form.status == '1'">å·¡æ£</div> |
| | | <div class="right_item active" v-if="form.status == '2'">å®å·¥æ£</div> --> |
| | | <div class="right_item" :class="{ 'active': item.active }" v-for="(item, index) in status" :key="index" @click="changeItem(index, item.id)">{{item.name}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | onMounted(() => { |
| | | checkAllLists() |
| | | // /productionInspection/manualInspection |
| | | // getListByConditions1() |
| | | // toolingQueryByIds() |
| | | }) |
| | |
| | | <script setup lang="ts"> |
| | | import { reactive, ref } from "vue" |
| | | import { useStore } from "vuex" |
| | | // import { BrowserMultiFormatReader } from '@zxing/library' |
| | | import { BrowserMultiFormatReader } from '@zxing/library' |
| | | import vTags from '@/components/common/Tags.vue' |
| | | import vMenu from '@/components/common/Menu.vue' |
| | | const store = useStore() |
| | | // let openCode = ref<boolean>(false) |
| | | let openCode = ref<boolean>(false) |
| | | |
| | | // let loadingShow = ref<boolean>(false) |
| | | // let codeReader: any = ref(null) |
| | |
| | | height: 100%; |
| | | background: #f5f5f5; |
| | | .top { |
| | | margin-bottom: 20px; |
| | | margin-top: 20px; |
| | | } |
| | | .box_notfound { |
| | | padding-top: 300px; |
| | |
| | | <div class="wx_login_list"> |
| | | <div class="wx_login_list_item"> |
| | | <img src="@/assets/icon/login_ic_code@2x.png" alt="" /> |
| | | <input type="text" v-model="from.companyId" placeholder="ä¼ä¸ä»£ç " /> |
| | | <input type="text" placeholder="ä¼ä¸ä»£ç " /> |
| | | </div> |
| | | <div class="wx_login_list_item"> |
| | | <img src="@/assets/icon/login_ic_phone@2x.png" alt="" /> |
| | | <input type="text" maxlength="11" v-model="from.username" placeholder="ææºå·" /> |
| | | <input type="text" placeholder="ææºå·" /> |
| | | </div> |
| | | <div class="wx_login_list_item"> |
| | | <img src="@/assets/icon/login_ic_password@2x.png" alt="" /> |
| | | <input type="password" v-model="from.password" placeholder="å¯ç " /> |
| | | <input type="text" placeholder="å¯ç " /> |
| | | </div> |
| | | </div> |
| | | <div class="wx_login_footer"> |
| | | <div class="wx_login_footer_btn" @click="login">ç«å³ç»å½</div> |
| | | <div class="wx_login_footer_btn">ç«å³ç»å½</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { onMounted, reactive } from 'vue'; |
| | | import { useRoute, useRouter } from 'vue-router'; |
| | | import { useStore } from 'vuex'; |
| | | import { wxLogin, wxAccountLogin, getUserInfo } from '@/apis/index'; |
| | | import { Toast } from 'vant'; |
| | | |
| | | const route = useRoute() |
| | | const router = useRouter() |
| | | const store = useStore() |
| | | |
| | | let from: any = reactive({ |
| | | openid: '', |
| | | unionid: '', |
| | | companyId: '', |
| | | username: '', |
| | | password: '' |
| | | }) |
| | | |
| | | const login = async () => { |
| | | if (!from.openid) return Toast('openidä¸è½ä¸ºç©º') |
| | | if (!from.unionid) return Toast('unionidä¸è½ä¸ºç©º') |
| | | if (!from.companyId) return Toast('ä¼ä¸ä»£ç ä¸è½ä¸ºç©º') |
| | | if (!from.username) return Toast('ææºå·ä¸è½ä¸ºç©º') |
| | | if (!from.password) return Toast('å¯ç ä¸è½ä¸ºç©º') |
| | | Toast.loading({ |
| | | message: 'ç»å½ä¸...', |
| | | forbidClick: true |
| | | }); |
| | | let res = await wxAccountLogin(from) |
| | | if (res.code === 200) { |
| | | let info = await getUserInfo() |
| | | if (info.code === 200) { |
| | | await store.commit('setEntrance', 'DD') |
| | | await store.commit('setUserInfo', info.data) |
| | | await store.dispatch('getMenuList', 2) |
| | | await router.replace('/workbench') |
| | | } |
| | | } |
| | | Toast.clear(); |
| | | } |
| | | |
| | | onMounted(() => { |
| | | wxLogin({ code: route.query.code }) |
| | | .then(async (res) => { |
| | | if (res.code === 200) { |
| | | // å
ç»å½ï¼ç´æ¥è·³é¦é¡µ |
| | | if (res.data.loginStatus == 0) { |
| | | let info = await getUserInfo() |
| | | if (info.code === 200) { |
| | | await store.commit('setEntrance', 'DD') |
| | | await store.commit('setUserInfo', info.data) |
| | | await store.dispatch('getMenuList', 2) |
| | | await router.replace('/workbench') |
| | | } |
| | | } else { |
| | | from.openid = res.data.openid |
| | | from.unionid = res.data.unionid |
| | | } |
| | | } |
| | | }) |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | # æ¥å£åç¼
|
| | | VUE_APP_API_PREFIX = ''
|
| | |
|
| | | #æµè¯æå¡å¨
|
| | | # VUE_APP_BASE_URL = 'http://139.186.142.91:10012/'
|
| | | #æ±æº
|
| | | #VUE_APP_BASE_URL = 'https://106.14.220.133:10012/'
|
| | |
|
| | | #任康æ¬å°
|
| | | # VUE_APP_BASE_URL = 'http://192.168.0.15:10012/'
|
| | | # VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/'
|
| | |
|
| | | #æ±èæ¬å°
|
| | | #VUE_APP_BASE_URL = 'http://192.168.0.36:10021/'
|
| | |
|
| | | #VUE_APP_BASE_URL = 'http://192.168.0.12:10012/'
|
| | | #åç£ç£æ¬å°
|
| | | #VUE_APP_BASE_URL = 'http://192.168.0.18:10012/'
|
| | | #VUE_APP_BASE_URL = 'http://192.168.0.176:10012/'
|
| | | #VUE_APP_BASE_URL = 'http://6201h1b706.zicp.fun:19470/'
|
| | | VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
|
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | |
| | | # VUE_APP_BASE_URL = 'http://121.41.112.139:10012/'
|
| | |
|
| | | #æ£å¼ç¯å¢
|
| | | #VUE_APP_BASE_URL = 'http://127.0.0.1:10012/'
|
| | | #è¾ä¸½æ ¼æ¯ https://hsky.doumee.com/doumeeplant_api/doc.html
|
| | |
|
| | | # VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/'
|
| | | # https://dmtest.ahapp.net/doumeeplant_api/doc.html
|
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/'
|
| | | VUE_APP_BASE_URL = 'https://www.mes.red/doumeeplant/'
|
| | | # VUE_APP_BASE_URL = 'http://192.168.0.18:10021/'
|
| | |
| | | this.form.fileurlfull = this.form.fileStoreAddr ? this.form.fileurlfull : '' |
| | | }) |
| | | }, |
| | | |
| | | typeChange() { |
| | | let tempDate = new Date(); |
| | | tempDate.setDate(tempDate.getDate() + (this.form.oepnType ? 365 : 15)) |
| | |
| | | <div class="common-header"> |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <div>DMäºå·¥åå¹³å°ç«¯</div> |
| | | <div>å·¥åå¹³å°ç«¯</div> |
| | | <!-- <div class="title-en">Diagnosis of Intelligent Manufacturing Integrated Service Platfrom</div> --> |
| | | </div> |
| | | <div class="user"> |
| | |
| | | this.fetchData() |
| | | }, |
| | | type () { |
| | | console.log(type); |
| | | debugger |
| | | this.fetchData() |
| | | } |
| | | }, |
| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <p class="tip" v-if="form.parentId != null && form.id == null">为 <em>{{parentName}}</em> æ°å»ºåèå</p> |
| | | <p class="tip" v-if="form.parent != null && form.id == null">为 <em>{{parentName}}</em> æ°å»ºåèå</p> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="ä¸çº§èå" prop="parentId"> |
| | | <MenuSelect v-if="visible" v-model="form.parentId" placeholder="è¯·éæ©ä¸çº§èå" type="2" :exclude-id="excludeMenuId" clearable :inline="false"/> |
| | |
| | | <el-form-item label="徿 " prop="icon" class="form-item-icon"> |
| | | <div style="display: flex;"> |
| | | <UploadAvatarImage |
| | | :file="{ 'imgurlfull': form.fullIcon, 'imgurl': form.icon }" |
| | | :file="{ 'imgurlfull': form.icon, 'imgurl': form.icon }" |
| | | :uploadData="uploadData" |
| | | customStyle="width: 80px; height: 80px;" |
| | | tipsLabel="ä¸ä¼ 徿 " |
| | |
| | | @uploadBegin="isUploading=true" |
| | | /> |
| | | <div style="display: flex; flex-direction: column-reverse;" v-if="!!form.icon"> |
| | | <el-button style="margin-left: 5px; padding: 0 5px;" type="text" @click="deletePic">å é¤</el-button> |
| | | <el-button style="margin-left: 5px; padding: 0 5px;" type="text" @click="form.icon=''">å é¤</el-button> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | |
| | | // éæé¤éæ©çèåID |
| | | excludeMenuId: null, |
| | | uploadData: { |
| | | // floader: 'company/menu' |
| | | folder: 'company/menu' |
| | | floader: 'company/menu' |
| | | }, |
| | | parent: {}, |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | |
| | | name: '', |
| | | path: '', |
| | | icon: '', |
| | | fullIcon: '', |
| | | remark: '', |
| | | type: '2' |
| | | }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | created () { |
| | | this.config({ |
| | | api: '/system/menu' |
| | | }) |
| | | }, |
| | | methods: { |
| | | /** |
| | | * @title: çªå£æ é¢ |
| | |
| | | * @parent: æ°å»ºæ¶çä¸çº§èå |
| | | * @type: 0å¹³å° 1ãä¼ä¸ 2ãh5 |
| | | */ |
| | | open (title, target, parent) { |
| | | debugger |
| | | open (title, target, parent, type) { |
| | | this.title = title |
| | | |
| | | this.visible = true |
| | | // æ°å»ºï¼menu为空æ¶è¡¨ç¤ºæ°å»ºèå |
| | | if (target == null) { |
| | | this.excludeMenuId = null |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.parent = parent |
| | | this.form.id = null |
| | | this.form.parentId = parent == null ? null : parent.id |
| | | this.parentName = parent == null ? null : parent.name |
| | | this.form.fullIcon = '' |
| | | this.form.type = type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.fullIcon = !!target.icon ? (target.resourcePath + target.icon) : '' |
| | | }) |
| | | }, |
| | | uploadReverseSuccess(file) { |
| | | this.form.icon = file.imgurl; |
| | | this.form.fullIcon = file.imgurlfull; |
| | | }, |
| | | deletePic() { |
| | | this.form.fullIcon='' |
| | | this.form.icon='' |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/system/menu' |
| | | }) |
| | | }, |
| | | methods: { |
| | | uploadReverseSuccess(file) { |
| | | // this.form. = file.imgurl; |
| | | this.form.icon = file.imgurlfull; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | * @type: 0å¹³å° 1ãä¼ä¸ 2ãh5 |
| | | */ |
| | | open (title, target, parent, type) { |
| | | debugger |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»ºï¼menu为空æ¶è¡¨ç¤ºæ°å»ºèå |
| | |
| | | this.excludeMenuId = null |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form.type = type |
| | | this.form.id = null |
| | | this.form.parentId = parent == null ? null : parent.id |
| | | this.parentName = parent == null ? null : parent.name |
| | | this.form.type = type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.type = type |
| | | }) |
| | | } |
| | | }, |
| | |
| | | name: 'OperaPermissionWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | props: { |
| | | type: { |
| | | type: Number|String, |
| | | default: 0 |
| | | } |
| | | }, |
| | | data () { |
| | | return { |
| | | // åæéç |
| | |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | this.form.type = this.type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.type = this.type |
| | | }) |
| | | }, |
| | | confirm () { |
| | |
| | | } |
| | | /** |
| | | * |
| | | |
| | | è¿ä¸æ¬¡å¤åå´©å¼å¯è½å°±æ¯ä¸éé仿®¿æå
³ï¼æ¯å®æ£åçæ°æºå å§äºæ¤å°é«å°çé¾è£ï¼èåå
¨é¢å¡æ²ï¼åºç°å¤©åã |
| | | |
| | | ä¸éé仿®¿ç¸æ¯ï¼ä¸ä½å¤å£ç身é«è¥èè«è¬ï¼ä¸»è¦æ¯è¿åº§é殿太大äºä¸å¨æ£åæ ç©·ä»å
ã |
| | | |
| | | æ¾ç¶ï¼ä»ä»¬åç°äºå¶å¡å 人ï¼éå¦ççä¸åç³å忝黿¥è¬ï¼æ¼é»èæ·±ä¸å¯æµååºä¸ç¼ç¼ä¹å
ï¼æ«è§äºè¿æ¥ï¼æä¸ç§é«é«å¨ä¸ï¼ä¿¯è§è¼èè¬çæ°å¿ã |
| | | |
| | | 坿ï¼ä»æ æ³è±å°æ²¡æåæ³å²è¿æ¥ï¼æ´ä¸è½åºæã |
| | | |
| | | å¶å¡ã段德ãé»ççäººé½æ æ§ï¼ä¸äººèªèº«é¾ä¿è¢«å®å¨äºé£éï¼è½å¦æ´»ä¸å»é½ä¸¤è¯´ã |
| | | |
| | | âæ¯æ°â¦â¦è¿ä¹å¤ï¼ï¼âé¾é©¬åè¹ååºå
ç«ï¼è¿è¿çç»çéæ®¿æ¯è¡ï¼ä¸å¯ç²¾åè¿å©çæ ·åã |
| | | |
| | | å¶ç³ä¹å¼ 大äºå´å·´ï¼é³åºä¸å¯æè®®çç¥è²ï¼éï¼âå¸åè¿å°±æ¯ä½ é¼çæ¥æºå¤ï¼â |
| | | |
| | | âç 人å大å¸äºä¸å¾ï¼è¿æ¯è¦åä»ä¹ï¼æå¼äºä¸ä¸ªæ··æ²ä»å°ï¼è¿æ¯è¦æé æå¼ºä»å
µåè¿ä¹å¤æ¯æ°é¸é¼ï¼å夿ç¼ï¼ä¸å»ä¹ä¸è°è½æ¡ä½ï¼â大é»çä¹éæ¼ã |
| | | |
| | | å¨éé仿®¿å¤é¨ä¸ç©æ¯æ°ç¼ç»ï¼æçæå±±ææµ·ï¼ä¸å±åä¸å±ï¼è¥æåè¬æ²éåç人å°åæ¢å¼å¸ï¼ææ éçéçå¨äº¤ç»ã |
| | | |
| | | ä»»ä½ä¸ç¼æ¯æ°é½å¯ä»¥åå¡ä¸åº§å±±èè¿ä¹å¤åèå¨ä¸èµ·ï¼è¿å¾å¤ä¹æ²éï¼å¤ä¹å¤§å¸ä»¥å®é¸æå
µå¨ï¼æ¯æ³ä¸å»åæç¢å
¶ä»å¸å
µåï¼ |
| | | |
| | | 寻常人è¥è½å¯»å°ä¸ç¼æ¯æ°å°±æ¯å¤§æºç¼äºï¼èä»è¿ä¹å¤ï¼è·äºå±ä¸è¬å¯å¸ï¼ç¬¼è¹æ¤å°ï¼å¤æ´å¤§æ°ï¼å·å³¨ç£
æï¼æ¯ä¸ç§å¥è¿¹ã |
| | | |
| | | âèµ·ï¼â |
| | | |
| | | å¶å¡å¤§åäºä¸å£°ï¼é¢éª¨å
ä¸ä¸ªéè²çå°äººçå¼äºç¼çï¼é¿èº«èèµ·ï¼ä¸æ¥è¿åºï¼ä»¥éç为æè¡£ï¼ä»¥é¼ä¸ºå
µå¨ã |
| | | |
| | | ä¸è½´æ¯æ°é¼æ¬å¨å
¶å¤´ä¹ï¼éè²å°äººå¼ å£ä¸å£°æ¸
å¸ï¼å°é¼å¿«éæ¾å¤§ï¼ååé£å»ï¼å¼å§é²¸å¸ç饮ï¼åæ¶é£æµ·éçæ¯æ°ï¼ |
| | | |
| | | âä½ æ¢â¦â¦âéå¦å¤§æï¼ç»æ¯åäºé¢è²ï¼é¾ä»¥ä¸è¯ï¼æ æ³éå®ã |
| | | |
| | | è¿ä¹å¤ä¸ç©æ¯æ°ï¼å³ä¾¿å¤±å»äºæºæ ¹ï¼ä¹æ¯ä¸¾ä¸é¾å¯»çç¥æï¼è¥æ¯å°æï¼ç®ç´æ¯é天çé åã |
| | | |
| | | ä»ä¹ä¸è¥¿æçè´µï¼èªç¶æ¯å¤ä¹å¤§å¸çå
µå¨ï¼èè¿äºçæ¯æ°éæ¯äººæå¤§å¸åå¤ç¨æ¥ç¼å
µçï¼ä»·å¼æ²¡æåæ³è¡¡éã |
| | | |
| | | å¦å¤ä¸¤ä½å¤å£åè²ï¼æå¿æ åï¼ç身é½é¾ä¿äºï¼è¿æä¹å»é»æ¡ï¼ |
| | | |
| | | â人æçå£ä½ï¼ä½ ææé¨ä¼ï¼å¤ºæé åï¼æ¤æ¯å¤§ä»ï¼æè¥è±å°ï¼æä»¥ç¾æ¬¡ï¼å³ä¾¿æ¯ææèä½ä¹æ è¯å¯è¯´ãâéå¦å¹½æ£®çå¼å£ã |
| | | |
| | | âçä½ è±å°æ¶å计è¾å§ï¼ç°å¨ææ²¡ç©ºæçä½ ï¼ç»ææ¾ä¸ªå°æ¹èªå·²æ¸
åå»ãâå¶å¡æ¼«ä¸ç»å¿ç说éã |
| | | |
| | | æ¤æ¶ï¼ä»å¿æ
大好ï¼ä»¥é¼åæ¶æµ·éæ¯æ°ï¼çº³äºé¼å©ºï¼çåç¼äºä¸ä½ã |
| | | |
| | | å
µåè¯åç¶ï¼ä»ç鼿²æ²æµ®æµ®ï¼ä¿æ°ä½åï¼æ¯æ°å¦ä¸æµå½æµ·ï¼åçèç©ºææ²ãå´©å¡ï¼ä¸é¼åä¸ï¼ä¸åå½¼æ¤ã |
| | | |
| | | ä¸ç©æ¯æ°æºä»æ¤åä¸ï¼ç 人çå¸å
µææï¼ä¸åå¤ç½è§ï¼éå¦ç¼çº¢ä¸æå¼ï¼èªç¶æ¯åæ£å¸¸ä¸è¿çäºæ
äºï¼ |
| | | |
| | | é¼ï¼ä¸ºæ¯æ°ç²¾ç²¹ï¼æ¤æ¶ä¸æµ·éæ¯æ°åä¸ï¼æ°´ä¹³å交èï¼æ£ååºä¸ç§ç彿³¢å¨ï¼åæ¯å°è¦è¯çç¥çµå¿äºã |
| | | |
| | | âä½ å彿¶èµ°ï¼æ å½ä½¿ç¨ãâéå¦å·æ£®æ£®çç¬ï¼ä»å
满äºä¸æ¢ï¼ææºæ¯é³ï¼æ¯ä¸å æ©é¥°çã |
| | | |
| | | è¥æ¯è½è¡å¨ï¼ä»è¯å®ä¼å¨ç¬¬ä¸æ¶é´åºæï¼å°å¶å¡ç¢¾åæé£ç°ï¼æ æ¯çéæ¾ã |
| | | |
| | | âä½ æ²¡æè¿ä¸ªæºä¼ï¼å³ä¾¿ä½ æä¸ºäºå£çº§äººç©ï¼ä½ä¹ä¸è§å¾ä¸ä¼æ®è½ï¼è¿æ¯å½å¿ä½ èªå·²å§ãâå¶å¡ç¬éã |
| | | |
| | | ä»å¹¶æ ¹æ¬ä¸è®¡è¾ï¼æä»ä¹æ¯è¯éä¹å¨å®ç¾æ´äººæ¿å¨ï¼ä»ç鼿µ·çº³ç¾å·ï¼å°æææ¯æ°é½ç»æ±²åäºï¼éç交ç»ã |
| | | |
| | | âäºåä¸ï¼ä½ å´å·´æå¥½èå®ç¹ï¼ä¸ç¶æ¬åº§èµä½ ä¸ä¸ªé
è´´ï¼åè®©ä½ æ¥ä¸ªé©´ææ»ãâé¾é©¬æ»¡å£æµè¯ã |
| | | |
| | | å®è¾¹è¯´è¾¹æ¬èµ·äºè¹åï¼åå¤ä¸è¹¶åå°¥è¿å»ï¼è½åäºåä¸åç³ï¼å°éå¦é¥®æ¨ï¼æ»å¨éé仿®¿ä¸ã |
| | | |
| | | âå«ï¼âæ®µå¾·èµ¶ç´§é»æ¢ï¼è®©å®ä¸è¦è½»ä¸¾å¦å¨ã |
| | | |
| | | é£ééæ®¿ï¼ä¸ä»å
亿ä¸ç¼ï¼å°ç¥çé½è¦å没äºï¼ä»ä»¬è¥æ¯è´¸ç¶åºæï¼ä¹è¢«åè¿å»å°±éº»ç¦å¤§äºã |
| | | |
| | | âè¿ç§å¹³è¡¡ä¸å¯æç ´ï¼ä»ä»¬è¥æ¯å½å¤§å°±é¯åºæ¥ï¼å½å°å°±ççæ®è½å§ãâé»çä¹éã |
| | | |
| | | å¶å¡å®å·¥ï¼é¼ä¸ä¸åä¹ä¸ç¥éäºå¤å°åï¼å¥½å¨æ©å·²è¢«ç¼åï¼å
¶éä¸è¢«ä»æ¿åï¼ç°å¨ç ¸åºå»ï¼ä¸å¨ç¨æ³ååï¼ä¼°è®¡ä¸è¬çææå°±å¾ç´æ¥æä¸ºé½ç²ã |
| | | |
| | | âå°åï¼è¿ä¹å®è´µçä¸è¥¿è½å
¥äºä½ çæä¸ï¼ä½ 徿¿ä¸è¥¿è¡¥å¿æä»¬ï¼ä¸ç¶å°±å¹³åï¼æ¢ä½ä»äººï¼æ¬çæ©å°±æ¢äºï¼â大é»çå«å£ã |
| | | |
| | | â廿¯å¤©çåï¼ä»ä»èº«åä½åå
ææåºç好ä¸è¥¿ä¸å°ï¼æä¹ä¸è§ä½ ä¸ç¼´ï¼âå¶å¡æä»èåºã |
| | | |
| | | âæ é天å°ï¼æ¢ç¶è¿æ¯ä½ çè¯éç©ï¼è´«é乿æå人ä¹ç¾ï¼å°æ¶åå°ä»ä¸æ»å¤©çè¡å®«ä¸å¼æ¥çæéè¶çå¤åæä¸ä»½å°±è¡äºãâ |
| | | |
| | | âè¿ææçâ¦â¦âé¾é©¬ä¹å«éã |
| | | |
| | | ä¸ä¸ªæåä¸èµ·å«å·ãå¶ç³å¾æ¬åï¼ä¸å¯è½å»çåå¸å
çå®è´ã |
| | | |
| | | ä¸è¿å¤ï¼ä¸ä½å¤å£çé·æ°ï¼ç¼çççççå 个å°è¾æ¶èµ°äºå¤ä¹å¤§å¸çä¸å±ä»æï¼èä»è¿æ¾èç卿¤è®®è®ºåèµï¼å®å¨è®©ä»ä»¬å¤§æ¨ã |
| | | |
| | | å°¤å
¶æ¯éå¦ï¼èºé½è¦æ°ç¸äºï¼å 为é£å¤´é¾é©¬ä¸å£ä¸ä¸ªäºåä¸ï¼å¬é£å£å»è¯å®ä¸æ¯ä»ä¹å¥½è¯ï¼æçç¼ççä»ï¼æ ¹æ¬å°±æ²¡æå°ä»å½æä¸ä½å£å人ã |
| | | |
| | | âå¦â¦â¦â段德è¹çï¼åæ¯è§å¯å°äºä»ä¹ã |
| | | |
| | | å°å¥½ï¼æå£å人æ¥äºï¼æ¬çå¸ä¸éµçº¹æååºï¼æå¿æèè·³ãâé»çåè²ã |
| | | |
| | | èä»ï¼ä¸ä¸ºå£å人ï¼ç¼ºå°å®èº«ç«å½çèµæ¬ï¼ä»ä»¬èªç¶è°¨æ
å°å¿ï¼å¨è¿æ¥åå¸ä¸äºåç§éµçº¹ï¼åªè¦å£å人é临ï¼å°±ä¼é¢å¼ã |
| | | |
| | | é»çäºè¯æ²¡è¯´ï¼ååºæ£çéµå°ï¼æå¼è空ï¼ç´æ¥æ²¡å
¥äºè¿å»ï¼å¿«éä»è¿ä¸ªå°æ¹æ¶å¤±ã |
| | | |
| | | âç坿ï¼éé仿®¿ä¸å¯æ¯æä¸ä¸ªæ··æ²ä»å°ï¼éé¢å¤åæç¥çãâæ®µå¾·å¾éæ¾ã |
| | | |
| | | âå¤ªå¯æäºï¼âé¾é©¬æ´æ¯åå§ä¸å®ï¼ä½æ²¡æåæ³ï¼å£å人æ¥äºï¼ä»ä»¬åªè½éã |
| | | |
| | | âä¸ç©æ¯æ°æä¸å¯åä½ ä»¬æä¸ï¼é¡¹ä¸äººå¤´ä¹å
ççï¼æä¼å»æ¶åçï¼âéå¦é´æ£®æ£®ç说éã |
| | | |
| | | âäºåä¸ï¼å®å¿ççæ»å§ãâé¾é©¬ç´æ¥ä¸å¥è¯å·®ç¹åæ»ä»ã |
| | | |
| | | âå·â |
| | | |
| | | å
åä¸éªï¼ä»ä»¬æ¶å¤±å¨äºå°åä¸ä¸çã |
| | | |
| | | è¿å¤ï¼ç¥ç§æ³¢å¨æ©æ£ï¼å鍿å¼ï¼ä¸ä¸ªæ»¡å¤´èµ¤åç女åèµ°åºï¼èä½ä¿®åé¿ç«å¥ï¼æ¯ä¸å强大ç夿ã |
| | | |
| | | âè¡çµå¥³çæ¥äºï¼â |
| | | |
| | | ä¸å°äººæå¼ï¼è¿æ¯ä¸ä¸ªå£å人çï¼æ¾å¨ç¶æ± 大åä¼åºç°è¿ï¼æ¾ä¸å§ç¥ç对å³ï¼ä»æ¥ç«ç¶äº²èº«é临ï¼äºæ
è¶æ¥è¶å¤§ï¼è¿ç人ç©ä¹é½åä¸ä½äºã |
| | | |
| | | 她没æè½»ä¸¾å¦å¨ï¼ç»çæ·±æ¸èµ°äºå¾é¿æ¶é´ï¼æä¸æ¥è¿ä¸å»ï¼å½æ¥å°éé仿®¿è¿å¤æ¶ï¼è§å°äºä¸ä½å¤å£è¢«å°ã |
| | | |
| | | âè½°ï¼â |
| | | |
| | | åå»éåä¸å£°å·¨åï¼è¡çµå¥³çå²äºä¸æ¥ï¼èº«ä¸æææè¡è¿¹ï¼èº«ååå·®ç¹ç¸å¼ï¼èå¨å©·ç身åï¼å¦æä¸éå人影ï¼åæ¯åæ¨å°äºæç¹ï¼å
ç¥ä¹ç«å·®ä¸ç¹ççï¼èº«ååç ´ççä¸ææ ·åã |
| | | |
| | | åâ¦â¦â |
| | | |
| | | ä»ä»¬å²ä¸æ¥åï¼å
¨é½å¤§å«ï¼å
æ»¡äºæ¤æï¼å°å䏿ä»çï¼å´ä¸å¯å¤ºå¾ï¼ä¸åº§ä»æ®¿å°±è¶³ä»¥éæ»æäººï¼ |
| | | |
| | | å°¤å
¶æ¯éå¦ï¼åææå±ï¼è¢«å¶å¡ä¸é¾é©¬å¥è½ï¼ç¼çççççä¸ç©æ¯æ°é¼è¢«æ´å«èµ°ï¼é£ç§ä¸æ¢ä¸æ¤æé¾ä»¥è¨è¡¨ã |
| | | |
| | | â人æå£ä½ï¼æå¿
æä½ ï¼ç¥å¤ç乿ä¸äºä½ ï¼âéå¦å¤§å¼ã |
| | | |
| | | è½°éå
声ï¼é³æ´«ä¼¼å¤©é·ï¼å¤§åéè¿å¾å¤ä¿®å£«èº«åä½é¾è£ï¼ä¿®ä¸ºç¨å·®çäººç´æ¥å´©å¼ï¼åæäºè¡é¾ï¼å£è´¤ä¸æï¼ä¼å°¸æ æ°ï¼å¹¶éåè¯ã |
| | | |
| | | â壿°ä¸å°ï¼å°±æ¯ä¸ç¥éï¼è¥æä¸æ¥çæç¥æé临ï¼ä½ ä¼å¦ä½èªå¤ï¼âä¸ä¸ªèèç声é³ä¼ æ¥ã |
| | | |
| | | æ å£°æ æ¯ï¼å¤©çå£å°ç³åçèå£åäººå«æåºç°ï¼å¤äºæ æ³¢ï¼ç«å¨é£éï¼å¦ä¸æ®µæ¯æ¨ã |
| | | |
| | | è¡çµå¥³çå¦ä¸´å¤§æï¼ç¥è²åäºï¼äººæå£å人åªä¸ä¸ªæ¯å¡ä¿ï¼å½å¹´å¨ç¶æ± 大åä¼ä¸ä¸ªç½è¡£ç¥çæå¤æè¯¸å£è¡æº
å¡ç©ºï¼æ»äºä¸æ¹å䏿¹ï¼å
æ°å¤§ä¼¤ã |
| | | |
| | | è¿ä¸ªèå£å人ï¼è¿å¥¹é½ä¸è½åº¦æ·±æµ
ï¼å¿ä¸çªçªç´è·³ï¼ä¸æ¢å¦å¨ã |
| | | |
| | | 嫿ç«å¨è¿éï¼é»é»æ¨æ¼äºä¸çªï¼èåè¹èµ·äºç头ï¼ä¸è¯ä¸åï¼èº«å½±æ¨¡ç³ï¼å空æ¶å¤±äºã |
| | | |
| | | åæ¶ï¼å«ææ¶å¤±çå¹é£ï¼å°é«å°è¯¸å¤ä¿®å£«é½ç»å¸¦èµ°äºï¼ä¼ åéå
¥å°è¿ç©ºã |
| | | |
| | | âè½°â |
| | | |
| | | çªç¶ï¼éé仿®¿ï¼ç¬é´ä¸ä¸ï¼ä¸ä¸åå²ä¸äºå¤©åï¼ä»å
æ æ°ï¼åæ¯ä¸è½®å¤ªé³è¬åå
ï¼å
é¨ä¸ä¸ªè¡åæ·åæ·çâä»âï¼åæä¸éå
ï¼æ å¨è空ä¸ï¼æ¨ªæå¤ä»ã |
| | | |
| | | è¡çµå¥³çãéå¦å 人é£å¿«åéï¼éª¨èä½åï¼å·®ä¸ç¹å¨è¿ä¸ªå°æ¹ç¸å¼ï¼æµèº«é½æ¯è¡ï¼å ä¹è¢«æ´»æ´»éæ»ã |
| | | |
| | | 好ä¸ä¸ªä»æ®¿ï¼æç¶éå¡ï¼çæ¯é¾ä»¥æ³è±¡ï¼ç©¶ç«æ¯è°å¨å
¶å
é¨å»åºä¸ä¸ªå¤§æ´ï¼ççæäºåºæ¥ãâä¸ä¸ªèèç声é³è¯´éï¼æµæå¤§å£æ¾åï¼åºç°å¨å¤©è¾¹ã |
| | | |
| | | å¨å
¶èº«åï¼ææ°ä½å¤å£ç¸éï¼ä¸å
¶å
±è¿éï¼æ¾ç¶å¯¹å¤§åå
çç¥çå¿å¨å¿
å¾ã |
| | | |
| | | å¦ä¸è¾¹ï¼äººæååºç°ä¸é身影ï¼ç½è¡£ççï¼æ£æ¯ç¥çå§å¤ªèï¼ä»ä¹ç°åºäºè¸ªè¿¹ã |
| | | |
| | | ç¥çä¸åºç°ï¼ç°åºé¡¿æ¶ä¸éµå¤§ä¹±ï¼è¯¸å¤å¤æé¢¤åæï¼è¿ä¸äºç¥ç齿¯æµèº«ååï¼ç¶æ± 大åä¼ï¼ç»ä»£ç¥çä¸äººæçä»ä»¬å¿èé½å¯äºã |
| | | |
| | | âå¿ï¼è¿åº§é殿ä¸ä»æå
³ï¼ä¸è¥æçä¸èµ·å°æå¼å¦ä½ï¼çä¸çå°åºæä»ä¹ãâæä¸é身影é临ï¼å¾æ¯å¤èï¼ä¸å°äººå大æï¼æ¯ä¸é¾å·¢ç大å£å°äºã |
| | | |
| | | ä¸åº§å¸åå¼åäºä¸åºæ»å¤©å¤§ä¹±ï¼è¯¸å¤å¤çï¼è¿æå ä½å¤§å£ä¹åä¸ä½äºï¼æ³è¦å¼å¯ï¼è·åæä»çç§å¯ã |
| | | |
| | | â人æå¤§å¸çåï¼å¤äººé¾å¨â¦â¦âå§å¤ªèèªè¯ã |
| | | */ |
| | | </script> |
| | | |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row, null, 1)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row, 1)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button v-if="!row.fixed" type="text" style="color: red" @click="deleteById(row)" v-permissions="['system:menu:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['system:menu:create', 'system:menu:delete', 'system:menu:sort']"> |
| | | <li><el-button type="primary" @click="$refs.operaMenuWindow.open('æ°å»ºä¸çº§èå', null, null)" icon="el-icon-plus" v-permissions="['system:menu:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaMenuWindow.open('æ°å»ºä¸çº§èå', null, null, 2)" icon="el-icon-plus" v-permissions="['system:menu:create']">æ°å»º</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['system:menu:delete']">å é¤</el-button></li> |
| | | <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">ä¸ç§»</el-button></li> |
| | | <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">ä¸ç§»</el-button></li> |
| | |
| | | <el-table-column prop="name" label="èååç§°" fixed="left" align="center" min-width="160px"></el-table-column> |
| | | <el-table-column prop="icon" label="徿 " align="center" min-width="80px" class-name="table-column-icon"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.icon != null && row.icon !== ''" style="width: 40px; height: 40px;" :src="row.resourcePath + row.icon"></el-image> |
| | | <el-image v-if="row.icon != null && row.icon !== ''" style="width: 40px; height: 40px;" :src="row.icon"></el-image> |
| | | <template v-else>æªè®¾ç½®</template> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button type="text" @click="$refs.operaMenuWindow.open('ç¼è¾èå', row)" v-permissions="['system:menu:update']">ç¼è¾</el-button> |
| | | <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <el-button v-if="!row.fixed" type="text" style="color: red" @click="deleteById(row)" v-permissions="['system:menu:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaPermissionWindow ref="operaPermissionWindow" :type="0" @success="handlePageChange"/> |
| | | <OperaPermissionWindow ref="operaPermissionWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '' |
| | | |
| | | # ç¦æ¾ |
| | | VUE_APP_BASE_URL = 'http://192.168.0.36:10021/' |
| | | |
| | | # æ±è |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.35:10021/' |
| | | |
| | | # æµè¯æå¡å¨ |
| | | # VUE_APP_BASE_URL = 'http://139.186.142.91:10012/' |
| | | # æ±æº |
| | | # VUE_APP_BASE_URL = 'https://106.14.220.133:10012/' |
| | | |
| | | # 任康æ¬å° |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.15:10021/' |
| | | |
| | | VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | | # VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/' |
| | | |
| | | # æ±èæ¬å° |
| | | #VUE_APP_BASE_URL = 'http://192.168.0.12:10012/' |
| | | # åç£ç£æ¬å° |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.18:10012/' |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.176:10012/' |
| | | # VUE_APP_BASE_URL = 'http://6201h1b706.zicp.fun:19470/' |
| | |
| | | VUE_APP_ROUTER_MODE = 'hash' |
| | | |
| | | # 项ç®ä¸ä¸æè·¯å¾ |
| | | # VUE_APP_CONTEXT_PATH = '/doumeeplant_web/' |
| | | VUE_APP_CONTEXT_PATH = '/web/' |
| | | |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/doumeeplant' |
| | | |
| | | # æµè¯æå¡å¨ |
| | | # VUE_APP_BASE_URL = 'http://139.186.142.91:10012/' |
| | | # æ¼ç¤ºæå¡å¨ |
| | | # VUE_APP_BASE_URL = 'http://121.41.112.139:10012/' |
| | | # æ£å¼ç¯å¢ |
| | | # VUE_APP_BASE_URL = 'http://127.0.0.1:10012/' |
| | | #è¾ä¸½æ ¼æ¯ https://hsky.doumee.com/doumeeplant_api/doc.html |
| | | # VUE_APP_BASE_URL = 'https://hsky.doumee.com/doumeeplant_api/' |
| | | |
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | | |
| | | VUE_APP_BASE_URL = 'https://www.mes.red/doumeeplant/' |
| | |
| | | # æµè¯ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | # è·¯ç±æ¹å¼ |
| | | VUE_APP_ROUTER_MODE = 'hash' |
| | | |
| | | VUE_APP_CONTEXT_PATH = '/doumeeplant_web' |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/doumeeplant_api' |
| | | |
| | | VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .DS_Store |
| | | coderd.json |
| | | node_modules |
| | | doumeeplant_web |
| | | vue.config.js |
| | | |
| | | |
| | | # local env files |
| | | .env.local |
| | | .env.*.local |
| | | |
| | | # Log files |
| | | npm-debug.log* |
| | | yarn-debug.log* |
| | | yarn-error.log* |
| | | pnpm-debug.log* |
| | | |
| | | # Editor directories and files |
| | | .idea |
| | | .vscode |
| | | *.suo |
| | | *.ntvs* |
| | | *.njsproj |
| | | *.sln |
| | | *.sw? |
| | |
| | | "@vue/cli-service": "~4.5.0", |
| | | "@vue/eslint-config-standard": "^5.1.2", |
| | | "babel-eslint": "^10.1.0", |
| | | "eslint": "^6.7.2", |
| | | "eslint-plugin-import": "^2.20.2", |
| | | "eslint-plugin-node": "^11.1.0", |
| | | "eslint-plugin-promise": "^4.2.1", |
| | |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | @import "assets/style/lib.css"; |
| | | // å¼å
¥å
¨å±æ ·å¼ |
| | | @import "assets/style/style"; |
| | | // å¼å
¥ç³»ç»å
ç½®å¾æ |
| | | @import "assets/icons/system/index"; |
| | | // å¼å
¥èªå®ä¹å¾æ |
| | | @import "assets/icons/ext/index"; |
| | | .long-title-style { |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | -webkit-text-overflow: ellipsis; |
| | | overflow: hidden; |
| | | } |
| | | .el-tooltip__popper.is-dark { |
| | | max-width: 400px; |
| | | } |
| | | </style> |
| | |
| | | // ç¹æ®åç¬¦äº¤éª |
| | | export function validateSpecialKey(rule, value, callback) { |
| | | if (!checkSpecialKey(value)) { |
| | | callback(new Error(`åªå¯ä»¥è¾å
¥æ°åã忝åè±æç¬¦å·`)); |
| | | callback(new Error(`åªå¯ä»¥è¾å
¥æ°åã忝å符å·`)); |
| | | } else { |
| | | callback(); |
| | | } |
| | |
| | | .el-date-editor--daterange.el-input__inner, |
| | | .el-date-editor--timerange.el-input, |
| | | .el-date-editor--timerange.el-input__inner { |
| | | width: 240px !important; |
| | | width: 220px !important; |
| | | } |
| | | |
| | | .el-input__inner { |
| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" label-suffix="ï¼" :rules="rules"> |
| | | <el-form-item label="å·¥å" prop="factoryId"> |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å·¥åï¼" prop="factoryId"> |
| | | <el-select v-model="form.factoryId" placeholder="è¯·éæ©å·¥å" :disabled="isEdit" filterable clearable @change="selectFactoey(form.factoryId, false)"> |
| | | <el-option |
| | | v-for="item in factories()" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç©æä¿¡æ¯" prop="materialId"> |
| | | <el-form-item label="ç©æä¿¡æ¯ï¼" prop="materialId"> |
| | | <!-- @change="selectMaterial(form.materialId, false)" --> |
| | | <el-select v-model="form.materialId" clearable filterable placeholder="è¯·éæ©"> |
| | | <el-option |
| | |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="计åå¼å§æ¥æ" prop="startDate"> |
| | | <el-date-picker |
| | | v-model="form.startDate" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©è®¡åå¼å§æ¥æ" |
| | | :picker-options="pickerOptions" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="计åç»ææ¥æ" prop="planDate"> |
| | | <el-form-item label="è®¡åæ¥æï¼" prop="planDate"> |
| | | <el-date-picker |
| | | v-model="form.planDate" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©è®¡åç»ææ¥æ" |
| | | placeholder="è¯·éæ©è®¡åæ¥æ" |
| | | :picker-options="pickerOptions" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ°é" prop="num"> |
| | | <el-form-item label="è®¡åæ°é:" prop="num"> |
| | | <el-input v-model="form.num" placeholder="请è¾å
¥" max="10" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¹æ¬¡å·" prop="batch"> |
| | | <el-input v-model="form.batch" placeholder="请è¾å
¥" max="30" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="éå®è®¢å" prop="salesorder"> |
| | | <el-input v-model="form.salesorder" placeholder="请è¾å
¥" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼å
级" prop="urgent"> |
| | | <el-form-item label="ä¼å
级ï¼" prop="urgent"> |
| | | <el-input v-model="form.urgent" placeholder="请è¾å
¥" max="4" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | num: null, |
| | | batch: null, |
| | | unitId: '', |
| | | startDate: '', |
| | | planDate: '', |
| | | salesorder: '', |
| | | urgent: '' |
| | | }, |
| | | materials: [], |
| | |
| | | api: '/business/workPlans', |
| | | 'field.id': 'id' |
| | | }) |
| | | let tempDate = new Date() |
| | | this.form.startDate = `${tempDate.getFullYear()}-${tempDate.getMonth() + 1}-${tempDate.getDate()}` |
| | | this.pickerOptions.disabledDate = (time) => { |
| | | // ä¸å¤© |
| | | let tempTime = 3600 * 1000 * 24 |
| | |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * |
| | | */ |
| | | </script> |
| | |
| | | {{title}} |
| | | </h2> |
| | | <div class="user"> |
| | | <div class="help" @click="jumpWord"> |
| | | <div class="user_help"> |
| | | <img src="@/assets/images/ic_help@2x.png" alt="" /> |
| | | <span>å¸®å©ææ¡£</span> |
| | | </div> |
| | | <span class="ml5 mr5">|</span> |
| | | <span>ä¼ä¸ä»£ç ï¼ {{ tempId }}</span> |
| | | <div class="user_help" @click="jumpWord"> |
| | | <img src="@/assets/images/ic_help@2x.png" alt="" /> |
| | | <span>å¸®å©ææ¡£</span> |
| | | </div> |
| | | <!-- <div style="margin-right: 10px;">ä¼ä¸ä»£ç ï¼ {{ tempId }}</div> --> |
| | | <el-dropdown trigger="click" style="margin-right: 20px;" v-userState @command="select"> |
| | | <span class="el-dropdown-link"> |
| | | <span class="c2 f16">{{ tempC }}</span><i class="el-icon-arrow-down el-icon--right"></i> |
| | | {{ tempC }}<i class="el-icon-arrow-down el-icon--right"></i> |
| | | </span> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item v-for="(item, index) in cList" :key="index" :command='item.id'>{{ item.name }}</el-dropdown-item> |
| | |
| | | data () { |
| | | return { |
| | | tempC: '', |
| | | tempId: '', |
| | | cList: '', |
| | | visible: { |
| | | // ä¿®æ¹å¯ç |
| | |
| | | } |
| | | }, |
| | | created () { |
| | | if (this.userInfo.curComDepartment) { |
| | | this.tempC = this.userInfo.curComDepartment.name |
| | | this.tempId = this.userInfo.company.id |
| | | } |
| | | this.tempC = this.userInfo.curComDepartment ? this.userInfo.curComDepartment.name : '' |
| | | getDepartmentListByConditon({ |
| | | type: 0 |
| | | }) |
| | |
| | | // width: 30%; |
| | | flex-shrink: 0; |
| | | // text-align: right; |
| | | vertical-align: middle; |
| | | display: flex; |
| | | align-items: center; |
| | | .help { |
| | | .user_help { |
| | | width: 111px; |
| | | height: 36px; |
| | | display: flex; |
| | | height: 29px; |
| | | line-height: 38px; |
| | | align-items: center; |
| | | justify-content: center; |
| | | vertical-align: middle; |
| | | background: #F7F7F7; |
| | | border-radius: 4px; |
| | | margin-right: 30px; |
| | | cursor: pointer; |
| | | img { |
| | | width: 16px; |
| | | height: 16px; |
| | | margin-right: 7px !important; |
| | | } |
| | | span { |
| | | font-size: 12px; |
| | | font-size: 16px; |
| | | font-family: PingFangSC-Regular, PingFang SC; |
| | | font-weight: 400; |
| | | vertical-align: middle; |
| | | color: #666666; |
| | | } |
| | | .user_help { |
| | | // width: 111px; |
| | | |
| | | // background: #F7F7F7; |
| | | |
| | | |
| | | cursor: pointer; |
| | | img { |
| | | width: 16px; |
| | | height: 16px; |
| | | margin-right: 7px !important; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | .el-dropdown { |
| | | flex-shrink: 0; |
| | | top: 2px; |
| | |
| | | <div class="menu" :class="{collapse: menuData.collapse}"> |
| | | <div class="logo"> |
| | | <div><img src="@/assets/logo_v2.png"></div> |
| | | <h1 :class="{hidden: menuData.collapse}">DMäºå·¥å</h1> |
| | | <h1 :class="{hidden: menuData.collapse}">{{ rootName() }}</h1> |
| | | </div> |
| | | <scrollbar> |
| | | <!-- :default-openeds="defaultOpeneds" --> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { treeComList, allList } from '@/api/ext/companyUserExt' |
| | | import { validateSpecialKey } from '@/assets/js/validate' |
| | | |
| | | export default { |
| | | name: 'OperaCompanyUserExtWindow', |
| | | extends: BaseOpera, |
| | |
| | | { pattern: /^[0-9]+$/, message: 'åªå¯ä»¥è¾å
¥æ°å', trigger: 'change' } |
| | | ], |
| | | empNo: [ |
| | | // { required: true, message: '请è¾å
¥å·¥å·', trigger: 'blur' }, |
| | | { required: true, message: '请è¾å
¥å·¥å·', trigger: 'blur' }, |
| | | { max: 20, message: 'è¾å
¥åæ°ä¸è¶
è¿20', trigger: 'blur' }, |
| | | { validator: validateSpecialKey, message: 'åªå¯ä»¥è¾å
¥æ°åã忝æè
è±æå符', trigger: 'blur' }, |
| | | // { pattern: /^[0-9a-zA-Z]+$/, trigger: 'change' } |
| | | { pattern: /^[0-9a-zA-Z]+$/, message: 'åªå¯ä»¥è¾å
¥æ°åå忝', trigger: 'change' } |
| | | ], |
| | | departmentId: [ |
| | | { required: true, message: 'è¯·éæ©é¨é¨', trigger: 'blur' } |
| | |
| | | <span v-else style="color: #03AF76;" class="status-log">{{ item.status==1 ? '已夿' : item.status==2 ? 'å·²å®å·¥' : item.status==3 ? 'å·²æ£éª' : 'å·²æ¥å·¥' }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="c3 mt10 mb10 f12" style="display: flex;"> |
| | | <div>è®¡åæ°éï¼{{ form.num }}</div> |
| | | <div class="ml10">计åå¼å·¥æ¥æï¼{{ form.num }}</div> |
| | | </div> |
| | | <div style="color: #777; font-size: 11px; margin-bottom: 15px;">{{ 'ç产人åï¼' + proUserStr(item) }}</div> |
| | | <div v-if="item.produceDate" class="order-setup"> |
| | | <!-- æ¥å·¥ä¿¡æ¯ --> |
| | | <div class="line-style"> |
| | |
| | | </div> |
| | | <div class="setup-content"> |
| | | <div class="left-message"> |
| | | <div class="message-title-temp">产åº</div> |
| | | </div> |
| | | <div class="right-message ml30"> |
| | | <div style="display: flex;"> |
| | | <div class="time-style">æä½äººï¼{{ item.createUserName }}</div> |
| | | <div class="time-style ml50">æä½æ¶é´ï¼{{ item.produceDate }}</div> |
| | | <div class="message-title-temp"> |
| | | äº§åº |
| | | </div> |
| | | <div style="display: flex;" class="mt10"> |
| | | <span style="color:#666;">产åï¼</span> |
| | | <p class="time-style"> |
| | | {{ item.produceDate }} |
| | | </p> |
| | | </div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">ç©æï¼</span> |
| | | </div> |
| | | <div> |
| | | <div v-if="item.qualifiedNum"> |
| | | <span style="color:#03AF76">[åæ ¼å] </span> |
| | | <span style="color:#333333">{{ item.qualifiedNum + (form.umodel && form.umodel.name) }}</span> |
| | | </div> |
| | | <div v-if="item.unqualifiedNum" class="ml20"> |
| | | <div v-if="item.unqualifiedNum"> |
| | | <span style="color:#F5A400">[ä¸è¯å] </span> |
| | | <span style="color:#333333">{{ item.unqualifiedNum + (form.umodel && form.umodel.name) }}</span> |
| | | </div> |
| | |
| | | <div :class="item.produceDate ? 'message-title' : 'message-title-temp'"> |
| | | ææ |
| | | </div> |
| | | <p class="time-style"> |
| | | {{ item.materialDate }} |
| | | </p> |
| | | </div> |
| | | <div class="right-message ml30"> |
| | | <div style="display: flex;"> |
| | | <div class="time-style">æä½äººï¼{{ item.createUserName }}</div> |
| | | <div class="time-style ml50">æä½æ¶é´ï¼{{ item.materialDate }}</div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">ç©æï¼</span> |
| | | </div> |
| | | <div style="display: flex" class="mt10"> |
| | | <div style="color:#666;">ç©æï¼</div> |
| | | <div> |
| | | <div v-for="(sItem, sIndex) in item.materialList" :key="sIndex"> |
| | | <span style="color:#333333">{{ sItem.name + ' / ' + sItem.num + sItem.unitName }}</span> |
| | | </div> |
| | | <div> |
| | | <div v-for="(sItem, sIndex) in item.materialList" :key="sIndex"> |
| | | <span style="color:#333333">{{ sItem.name + ' / ' + sItem.num + sItem.unitName }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div :class="item.materialDate ? 'message-title' : 'message-title-temp'"> |
| | | åé
|
| | | </div> |
| | | |
| | | <p class="time-style"> |
| | | {{ item.distributeDate }} |
| | | </p> |
| | | </div> |
| | | <div class="right-message ml30"> |
| | | <div style="display: flex;"> |
| | | <div class="time-style">æä½äººï¼{{ item.createUserName }}</div> |
| | | <div class="time-style ml50">æä½æ¶é´ï¼{{ item.distributeDate }}</div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">åé
æ°éï¼</span> |
| | | </div> |
| | | <div class="mt10"> |
| | | <span style="color:#666;">åé
æ°éï¼{{ item.planNum + (form.umodel && form.umodel.name) }}</span> |
| | | <div> |
| | | <span style="color:#333333">{{ item.planNum + (form.umodel && form.umodel.name) }}</span> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | flex: 1; |
| | | // background-color: #f7f7f7; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .left-message { |
| | | display: flex; |
| | | line-height: 20px; |
| | | width: 62px; |
| | | .message-title { |
| | | color: #333; |
| | | font-weight: 500; |
| | |
| | | } |
| | | .time-style { |
| | | color: #999999; |
| | | font-size: 11px; |
| | | max-lines: 2; |
| | | } |
| | | } |
| | | .right-message { |
| | | flex: 1; |
| | | font-size: 13px; |
| | | // display: flex; |
| | | display: flex; |
| | | flex-direction: row; |
| | | } |
| | | } |
| | |
| | | // tobescrappedWarehouseId: '', |
| | | iscalculate: 1, |
| | | level: 0, |
| | | needcheck: 1, |
| | | needcheck: 0, |
| | | sortnum: '' |
| | | }, |
| | | iscalculates: [ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" width="1182px" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="1182px" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <div style="min-width:1150px"> |
| | | <el-form :model="form" ref="form" label-width="100px" label-suffix="ï¼" inline> |
| | | <div style="margin-bottom:15px"> |
| | | <span class="text-code">{{ form.procedureName + ' | ' + form.mmodel.name + ' ' + form.mmodel.code }}</span> |
| | | <!-- 0å·²å建ã1已夿ã2å·²å®å·¥æ£ã3å·²æ£éªã4å·²æ¥å·¥ãã6已忶 --> |
| | | <span v-if="form.status == 0" style="background-color: #305ED5;" class="status-log">å·²å建</span> |
| | | <span v-else-if="form.status == 6" style="background-color: #BBBBBB;" class="status-log">已忶</span> |
| | | <span v-else style="background-color: #03AF76;" class="status-log">{{ form.status == 1 ? '已夿' : form.status == 2 ? |
| | | 'å·²å®å·¥æ£' : form.status == 3 ? 'å·²æ£éª' : 'å·²æ¥å·¥' }}</span> |
| | | <span v-if="form.status==0" style="background-color: #305ED5;" class="status-log">å·²å建</span> |
| | | <span v-else-if="form.status==6" style="background-color: #BBBBBB;" class="status-log">已忶</span> |
| | | <span v-else style="background-color: #03AF76;" class="status-log">{{ form.status==1 ? '已夿' : form.status==2 ? 'å·²å®å·¥æ£' : form.status==3 ? 'å·²æ£éª' : 'å·²æ¥å·¥' }}</span> |
| | | <!-- <span v-if="form.status==3" style="background-color: #BBBBBB;" class="status-log">已忶</span> --> |
| | | </div> |
| | | <el-form-item label="å·¥åç¼å·" prop="workorderCode" class="count-style"> |
| | | <el-form-item label="å·¥åç¼å·" prop="workorderCode" class="count-style" > |
| | | {{ form.code }} |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¥æ" prop="proTime" class="count-style"> |
| | | <el-form-item label="çäº§æ¥æ" prop="proTime" class="count-style" > |
| | | {{ form.planDate }} |
| | | </el-form-item> |
| | | <el-form-item label="çäº§æ¹æ¬¡å·" prop="batch" class="count-style"> |
| | | <el-form-item label="çäº§æ¹æ¬¡å·" prop="batch" class="count-style" > |
| | | {{ form.batch }} |
| | | </el-form-item> |
| | | <!-- <el-form-item label="计å人å" prop="planUser" class="count-style" > |
| | |
| | | <el-form-item label="è®¡åæ¥æ" prop="planDate" class="count-style" > |
| | | {{ form.pmodel.createTime }} |
| | | </el-form-item> --> |
| | | <el-form-item label="ç产æ°é" prop="machine" class="count-style"> |
| | | {{ form.planNum ? (form.planNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} |
| | | <el-form-item label="ç产æ°é" prop="machine" class="count-style" > |
| | | {{ form.planNum ? (form.planNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} |
| | | </el-form-item> |
| | | <!-- <el-form-item label="è®¡åæ°é" prop="planNum" class="count-style" > |
| | | {{ form.pmodel.num }} |
| | |
| | | <!-- <el-form-item label="å叿¥æ" prop="startDate" class="count-style" > |
| | | {{ form.pmodel.publishDate }} |
| | | </el-form-item> --> |
| | | <el-form-item label="åå·¥åå·" prop="originWorkorderId" class="count-style"> |
| | | <el-form-item label="åå·¥åå·" prop="originWorkorderId" class="count-style" > |
| | | {{ form.originWorkorderId }} |
| | | </el-form-item> |
| | | <el-form-item label="åé
人å" prop="distributeUser" class="count-style"> |
| | | <el-form-item label="åé
人å" prop="distributeUser" class="count-style" > |
| | | {{ form.userName }} |
| | | </el-form-item> |
| | | <el-form-item label="åé
æ¶é´" prop="distributeTime" class="count-style"> |
| | | <el-form-item label="åé
æ¶é´" prop="distributeTime" class="count-style" > |
| | | {{ form.createTime }} |
| | | </el-form-item> |
| | | <el-form-item label="ç产人å" prop="proUser" class="count-style"> |
| | | |
| | | <el-form-item label="ç产人å" prop="proUser" class="count-style" > |
| | | |
| | | <div v-for="(item, index) in form.proUserList" :key="index">{{ item.proUserDepartName }}</div> |
| | | <!-- {{ form.proUserName + (form.proUserDepartName ? ('/' + form.proUserDepartName) : '') }} --> |
| | | </el-form-item> |
| | | <el-form-item label="ç产设å¤" prop="machine" class="count-style"> |
| | | {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}` }} |
| | | <el-form-item label="ç产设å¤" prop="machine" class="count-style" > |
| | | {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}`}} |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="åæ ¼æ°é" prop="qualifiedNum" class="count-style"> |
| | | |
| | | <el-form-item label="åæ ¼æ°é" prop="qualifiedNum" class="count-style" > |
| | | {{ form.qualifiedNum ? (form.qualifiedNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} |
| | | </el-form-item> |
| | | <el-form-item label="ä¸è¯æ°é" prop="unqualifiedNum" class="count-style"> |
| | | <el-form-item label="ä¸è¯æ°é" prop="unqualifiedNum" class="count-style" > |
| | | {{ form.unqualifiedNum ? (form.unqualifiedNum + (form.umodel.name ? form.umodel.name : '')) : '0' }} |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="ç产æ¥å·¥" name="first"> |
| | | <el-table v-loading="isSearch" :data="report" border show-summary :summary-method="getReportSummaries"> |
| | | <!-- stripe --> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="report" |
| | | border |
| | | show-summary |
| | | :summary-method="getReportSummaries" |
| | | > |
| | | <!-- stripe --> |
| | | <el-table-column prop="createTime" label="æ¥å·¥æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column label="ç产人å" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="machine" label="ç产设å¤" min-width="100px"> |
| | | {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}` }} |
| | | {{ form.pgmodel && `ã${form.pgmodel.code}ã${form.pgmodel.name}`}} |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
容å¨ç¼å·" show-overflow-tooltip="" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="mmodel.name" label="ç©æåç§°" show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <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.unqualifiedNum + row.umodel.name }}</span> |
| | | <!-- <span :class="row.materialDonetype==0 ? 'valid-style' : ''">{{ row.num + row.umodel.name }}</span> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ¥å·¥æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.num + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="60px"> |
| | | <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="60px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.doneType==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.doneType==1" class="unvalid-style">ä¸è¯</span> |
| | |
| | | <template slot-scope="{row}"> |
| | | <span :class="row.doneType==0 ? 'valid-style' : (row.doneType==1 ? 'unvalid-style' :(row.doneType==2 ? 'scrap-style' : ''))">{{ row.num ? (row.num + (row.umodel.name ? row.umodel.name : '')) : '0' }}</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="ç产æ£éª" name="second"> |
| | | <el-table v-loading="isSearch" :data="verify" stripe border> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="verify" |
| | | stripe |
| | | border> |
| | | <el-table-column prop="code" label="æ£éªè®°å½ç¼å·" min-width="140px"></el-table-column> |
| | | <el-table-column prop="createTime" label="æ£éªæ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column prop="smodelRealName" label="æ£éªäººå" min-width="100px"></el-table-column> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="devmodel.code" label="ç产设å¤" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.devmodel && `ã${row.devmodel.code}ã${row.devmodel.name}` }} |
| | | {{ row.devmodel && `ã${row.devmodel.code}ã${row.devmodel.name}`}} |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="proUserids" label="ç产人å" show-overflow-tooltip min-width="100px"></el-table-column> --> |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="ç产ææ" name="third"> |
| | | <el-table v-loading="isSearch" :data="feeds" stripe border show-summary :summary-method="getPutSummaries"> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="feeds" |
| | | stripe |
| | | border |
| | | show-summary |
| | | :summary-method="getPutSummaries" |
| | | > |
| | | <el-table-column prop="createTime" label="æææ¶é´" min-width="140px"></el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
容å¨ç¼å·" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="mmodel.name" label="ç©æåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="promodel.name" label="å·¥åºåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column 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-if="row.materialDonetype == 2" class="scrap-style">æ¥åº</span> |
| | | <span v-if="row.materialDonetype==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.materialDonetype==1" class="unvalid-style">ä¸è¯</span> |
| | | <span v-else-if="row.materialDonetype==2" class="scrap-style">æ¥åº</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-table> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="çäº§ç¹æ£" name="fourth"> |
| | | <el-table v-loading="isSearch" :data="check" stripe border> |
| | | <el-table |
| | | v-loading="isSearch" |
| | | :data="check" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="createTime" label="è®°å½æ¶é´" min-width="140px"></el-table-column> |
| | | <el-table-column prop="userName" label="æä½äººå" min-width="100px"></el-table-column> |
| | | <el-table-column prop="attrName" label="æ£ç¹å±æ§" min-width="100px"></el-table-column> |
| | |
| | | <el-table-column prop="value" align="left"></el-table-column> |
| | | </el-table> --> |
| | | </el-tab-pane> |
| | | <Pagination style="margin-top:10px" @size-change="handleSizeChange" @current-change="handlePageChange" |
| | | :pagination="pagination"></Pagination> |
| | | <Pagination |
| | | style="margin-top:10px" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="pagination" |
| | | ></Pagination> |
| | | </el-tabs> |
| | | </div> |
| | | <div slot="footer" class="window__header"> |
| | |
| | | name: 'OperaWorkorderDetailWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow, Pagination }, |
| | | data() { |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | |
| | | } |
| | | }, |
| | | inject: ['origins'], |
| | | created() { |
| | | created () { |
| | | this.config({ |
| | | api: '/ext/materialExt', |
| | | 'field.id': 'id' |
| | |
| | | // }) |
| | | }, |
| | | methods: { |
| | | open(title, target) { |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.activeName = 'first', |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | // console.log('this.form', this.form) |
| | | workorderRecordExtPage( |
| | | { |
| | | capacity: this.pagination.pageSize, |
| | | model: { |
| | | type: 1, |
| | | workorderId: this.form.id |
| | | }, |
| | | page: this.pagination.pageIndex, |
| | | sorts: null |
| | | }) |
| | | .then(res => { |
| | | // console.log(res) |
| | | this.report = res.records |
| | | this.pagination.pageIndex = res.page |
| | | this.pagination.total = res.total |
| | | this.pagination.pageSize = res.capacity |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }) |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | // console.log('this.form', this.form) |
| | | workorderRecordExtPage( |
| | | { |
| | | capacity: this.pagination.pageSize, |
| | | model: { |
| | | type: 1, |
| | | workorderId: this.form.id |
| | | }, |
| | | page: this.pagination.pageIndex, |
| | | sorts: null |
| | | }) |
| | | .then(res => { |
| | | // console.log(res) |
| | | this.report = res.records |
| | | this.pagination.pageIndex = res.page |
| | | this.pagination.total = res.total |
| | | this.pagination.pageSize = res.capacity |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }) |
| | | }, |
| | | cancel() { |
| | | cancel () { |
| | | this.$refs.form.resetFields() |
| | | this.activeName = 'first' |
| | | this.pagination.pageIndex = 1 |
| | |
| | | this.pagination.total = 0 |
| | | this.visible = false |
| | | }, |
| | | statusToStr(status) { |
| | | statusToStr (status) { |
| | | for (const item of this.status) { |
| | | if (item.id === status) { |
| | | return item.name |
| | | } |
| | | } |
| | | }, |
| | | originToStr(id) { |
| | | originToStr (id) { |
| | | for (const item of this.origins()) { |
| | | if (item.id === id) { |
| | | return item.code |
| | | } |
| | | } |
| | | }, |
| | | columnStyle({ row, column, rowIndex, columnIndex }) { |
| | | columnStyle ({ row, column, rowIndex, columnIndex }) { |
| | | if (rowIndex % 2 === 0) { |
| | | // ä¿®æ¹æ¯è¡ç¬¬ä¸ä¸ªåå
æ ¼çèæ¯è² |
| | | return 'background:#f3f6fc;' |
| | |
| | | return 'background:#ffffff;' |
| | | } |
| | | }, |
| | | handleClick(tab, event) { |
| | | handleClick (tab, event) { |
| | | this.pagination.pageIndex = 1 |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.total = 0 |
| | | this.search() |
| | | }, |
| | | handleSizeChange(pageSize) { |
| | | handleSizeChange (pageSize) { |
| | | this.pagination.pageSize = pageSize |
| | | this.search() |
| | | }, |
| | | handlePageChange(pageIndex) { |
| | | handlePageChange (pageIndex) { |
| | | this.pagination.pageIndex = pageIndex |
| | | // console.log('è·åæ°æ®') |
| | | this.search() |
| | | }, |
| | | search() { |
| | | search () { |
| | | if (this.activeName === 'first') { |
| | | workorderRecordExtPage( |
| | | { |
| | |
| | | workorderId: this.form.id |
| | | }, |
| | | page: this.pagination.pageIndex, |
| | | sorts: [{ direction: "DESC", property: "CREATE_TIME" }] |
| | | sorts: [{direction: "DESC", property: "CREATE_TIME"}] |
| | | }) |
| | | .then(res => { |
| | | // console.log(res) |
| | |
| | | workorderId: this.form.id |
| | | }, |
| | | page: this.pagination.pageIndex, |
| | | sorts: [{ direction: "DESC", property: "CREATE_TIME" }] |
| | | sorts: [{direction: "DESC", property: "CREATE_TIME"}] |
| | | }) |
| | | .then(res => { |
| | | // console.log(res.records) |
| | |
| | | workorderId: this.form.id |
| | | }, |
| | | page: this.pagination.pageIndex, |
| | | sorts: [{ direction: "DESC", property: "CREATE_TIME" }] |
| | | sorts: [{direction: "DESC", property: "CREATE_TIME"}] |
| | | }) |
| | | .then(res => { |
| | | // console.log(res) |
| | |
| | | workorderId: this.form.id |
| | | }, |
| | | page: this.pagination.pageIndex, |
| | | sorts: [{ direction: "DESC", property: "CREATE_TIME" }] |
| | | sorts: [{direction: "DESC", property: "CREATE_TIME"}] |
| | | }) |
| | | .then(res => { |
| | | // console.log(res) |
| | |
| | | }) |
| | | } |
| | | }, |
| | | getPutSummaries(param) { |
| | | getPutSummaries (param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | columns.forEach((column, index) => { |
| | |
| | | } else if (index === 5) { |
| | | sums[index] = '-'; |
| | | return; |
| | | } |
| | | } |
| | | const values = data.map(item => Number(item[column.property])); |
| | | if (!values.every(value => isNaN(value))) { |
| | | sums[index] = 0 |
| | |
| | | }); |
| | | return sums |
| | | }, |
| | | getReportSummaries(param) { |
| | | getReportSummaries (param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | columns.forEach((column, index) => { |
| | | if (index === 0) { |
| | | sums[index] = 'å计'; |
| | | return; |
| | | } else if (index === 4) { |
| | | sums[index] = '-'; |
| | | return; |
| | | } |
| | | const values = data.map(item => Number(item[column.property])); |
| | |
| | | width: 23%; |
| | | // height: 32px; |
| | | } |
| | | |
| | | ::v-deep .el-form-item { |
| | | margin-bottom: 8px !important; |
| | | } |
| | | |
| | | .text-code { |
| | | color: #333; |
| | | font-weight: 500; |
| | | padding-right: 15px; |
| | | font-size: 15px; |
| | | vertical-align: middle; |
| | | vertical-align:middle; |
| | | } |
| | | |
| | | .status-log { |
| | | padding: 1px 5px; |
| | | border-radius: 3px; |
| | | font-size: 12px; |
| | | color: #fff; |
| | | vertical-align: middle; |
| | | color:#fff; |
| | | vertical-align:middle; |
| | | } |
| | | </style> |
| | |
| | | this.form.planDate = new Date() |
| | | this.form.planId = target.id |
| | | this.form.planNum = target.num - target.distributNum |
| | | getDeviceByCondition({procedureId: target.procedureId}) |
| | | getDeviceByCondition({}) |
| | | .then(res => { |
| | | |
| | | this.device = res |
| | | this.form.proGroupId = res[0] ? res[0].id : '' |
| | | this.getUser(this.form.proGroupId) |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | |
| | | return date2 |
| | | } |
| | | }, |
| | | // pickerOptions(data) { |
| | | // let time = new Date(data); |
| | | // let tempTime = 3600 * 1000 * 24 |
| | | // return { |
| | | // disabledDate: time.getTime() < new Date(data)-tempTime |
| | | // } |
| | | // } |
| | | pickerOptions(data) { |
| | | let time = new Date(data); |
| | | let tempTime = 3600 * 1000 * 24 |
| | | return { |
| | | disabledDate: time.getTime() < new Date(data)-tempTime |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | |
| | | <tr> |
| | | <td>æå°ä¿¡æ¯</td> |
| | | <td style="text-align:left; line-height:16px;" colspan="2"> |
| | | <div>{{ userInfo.companyUser.name + ', ' + current}}</div> |
| | | <div>{{ userInfo.realname + ', ' + current}}</div> |
| | | </td> |
| | | </tr> |
| | | </tbody> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | :width="width" |
| | | @confirm="confirm" |
| | | > |
| | | <div class="text">åºæ¬ä¿¡æ¯</div> |
| | | <el-form ref="searchForm"  :model="searchForm" label-width="140px" inline> |
| | | <el-form-item label="å·¥èºåç§°:" prop="rmodelName" required="true"> |
| | | <el-input v-model="searchForm.rmodelName" placeholder="请è¾å
¥å·¥èºåç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥èºç¼ç ï¼" prop="procedureId" required="true"> |
| | | Â Â <GlobalWindow |
| | | Â Â Â Â :title="title" |
| | | Â Â Â Â :visible.sync="visible" |
| | | Â Â Â Â :confirm-working="isWorking" |
| | | Â Â Â Â :width="width" |
| | | Â Â Â Â @confirm="confirm" |
| | | Â Â > |
| | |     <div class="text">åºæ¬ä¿¡æ¯</div> |
| | |      <el-form ref="searchForm"  :model="searchForm" label-width="140px" inline> |
| | |       <el-form-item label="å·¥èºåç§°:" prop="rmodelName" required="true"> |
| | |         <el-input v-model="searchForm.rmodelName" placeholder="请è¾å
¥å·¥èºåç§°" @keypress.enter.native="search"></el-input> |
| | | Â Â Â Â Â Â </el-form-item> |
| | |         <el-form-item label="å·¥èºç¼ç ï¼" prop="procedureId" required="true"> |
| | | Â Â <GlobalWindow |
| | | Â Â Â Â :title="title" |
| | | Â Â Â Â :visible.sync="visible" |
| | | Â Â Â Â :confirm-working="isWorking" |
| | | Â Â Â Â :width="width" |
| | | Â Â Â Â @confirm="confirm" |
| | | Â Â > |
| | | <!--     <div class="text">åºæ¬ä¿¡æ¯</div> |
| | |      <el-form ref="searchForm"  :model="searchForm" label-width="140px" inline> |
| | |             <el-form-item label="å·¥èºåç§°:" prop="rmodelName" required="true"> |
| | |         <el-input v-model="searchForm.rmodelName" placeholder="请è¾å
¥å·¥èºåç§°" @keypress.enter.native="search"></el-input> |
| | | Â Â Â Â Â Â </el-form-item> |
| | |         <el-form-item label="å·¥èºç¼ç ï¼" prop="procedureId" required="true"> |
| | | >>>>>>> .r46706 |
| | |         <el-input v-model="searchForm.procedureId" placeholder="请è¾å
¥å·¥èºç¼ç " @keypress.enter.native="search"></el-input> |
| | | Â Â Â Â Â Â </el-form-item> |
| | |           <el-form-item label="æå±å·¥åï¼" prop="procedureId" required="true"> |
| | |         <el-input v-model="searchForm.dmodelCompanyId" placeholder="请è¾å
¥æå±å·¥å" @keypress.enter.native="search"></el-input> |
| | | Â Â Â Â Â Â </el-form-item> |
| | |         <div class="text title"><span>å·¥åºå表</span></div> |
| | |         <div style="padding-top:20px"> |
| | |        <el-button type="primary"  @click="drawer = true" >æ·»å å·¥åº |
| | | Â Â Â Â Â Â Â Â Â <el-drawer |
| | |      title="ææ¯æ é¢" |
| | | Â Â Â Â Â :visible.sync="drawer" |
| | | Â Â Â Â Â size='50%' |
| | | Â Â Â Â Â modal="false" |
| | | Â Â Â Â :with-header="false"> |
| | |     <span>ææ¥å¦!</span> |
| | |       <div class="demo-drawer__footer"> |
| | |       <el-button @click="cancelForm">å æ¶</el-button> |
| | |       <el-button type="primary" @click="$refs.drawer.closeDrawer()" :loading="loading">{{ loading ? 'æäº¤ä¸Â ...' : '确 å®' }}</el-button> |
| | | Â Â Â Â </div> |
| | | Â Â Â Â </el-drawer> |
| | | Â Â Â Â Â Â Â </el-button> |
| | |        <el-button type="primary" plain>ä¸ç§»</el-button> |
| | |        <el-button type="primary" plain>ä¸ç§»</el-button> |
| | | Â Â Â Â Â Â Â </div> |
| | |           <template v-slot:table-wrap> |
| | | Â Â Â Â Â Â <el-table |
| | | Â Â Â Â Â Â Â Â :data="list" |
| | | Â Â Â Â Â Â Â Â stripe |
| | | Â Â Â Â Â Â Â Â border |
| | | Â Â Â Â Â Â Â Â @selection-change="handleSelectionChange" |
| | | Â Â Â Â Â Â > |
| | |         <el-table-column type="selection" width="55" fixed="left"></el-table-column> |
| | |         <el-table-column label="ç©æä¿¡æ¯" min-width="140px"> |
| | | Â Â Â Â Â Â Â Â </el-table-column> |
| | |         <el-table-column prop="origin" label="äº§çæ¹å¼" min-width="100px"> |
| | | Â Â Â Â Â Â Â Â </el-table-column> |
| | | Â Â Â Â Â Â Â Â </el-table-column> |
| | |         <el-table-column label="被转æ¢å±æ§" min-width="100px"> |
| | | Â Â Â Â Â Â Â Â </el-table-column> |
| | |         <el-table-column prop="convertedName" label="被转æ¢åä½" min-width="100px"></el-table-column> |
| | |         <el-table-column prop="convertedNum" label="è¢«è½¬æ¢æ°å¼" min-width="100px"></el-table-column> |
| | |         <el-table-column label="转æ¢å±æ§" min-width="100px"> |
| | | Â Â Â Â Â Â Â Â </el-table-column> |
| | |         <el-table-column prop="unitName" label="转æ¢åä½" min-width="100px"></el-table-column> |
| | |         <el-table-column prop="unitNum" label="è½¬æ¢æ°å¼" min-width="100px"></el-table-column> |
| | |         <el-table-column prop="convertedTime" label="è½¬æ¢æ¶é´" min-width="140px"></el-table-column> |
| | | Â Â Â Â Â Â Â Â <el-table-column |
| | | Â Â Â Â Â Â Â Â Â Â label="æä½" |
| | | Â Â Â Â Â Â Â Â Â Â min-width="120" |
| | | Â Â Â Â Â Â Â Â Â Â fixed="right" |
| | | Â Â Â Â Â Â Â Â > |
| | |           <template slot-scope="{row}"> |
| | |             <el-button type="text" @click="$refs.operaUnitConversionExtWindow.open('ç¼è¾åä½è½¬æ¢', row)">ç¼è¾</el-button> |
| | |             <el-button type="text" @click="deleteById(row)">å é¤</el-button> |
| | | Â Â Â Â Â Â Â Â Â Â </template> |
| | | Â Â Â Â Â Â Â Â </el-table-column> |
| | | Â Â Â Â Â Â </el-table> |
| | | Â Â Â Â Â Â <pagination |
| | | Â Â Â Â Â Â Â Â @size-change="handleSizeChange" |
| | | Â Â Â Â Â Â Â Â @current-change="handlePageChange" |
| | | Â Â Â Â Â Â Â Â :pagination="tableData.pagination" |
| | | Â Â Â Â Â Â > |
| | | Â Â Â Â Â Â </pagination> |
| | | Â Â Â Â </template> |
| | | Â Â Â Â Â Â <section> |
| | |         <el-button type="primary" @click="search">æ¥æ¾</el-button> |
| | |         <el-button type="primary" @click="reset">æ¸
空</el-button> |
| | | Â Â Â Â Â Â </section> |
| | | Â Â Â Â </el-form> --> |
| | | Â Â </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from "@/components/base/BaseOpera"; |
| | | import GlobalWindow from "@/components/common/GlobalWindow"; |
| | | export default { |
| | | name: "OperaRouteProcedureExtWindow", |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data() { |
| | | return { |
| | | width: "86%", |
| | | drawer: false, |
| | | searchForm: { |
| | | rmodelName: "", |
| | | routeId: "", |
| | | procedureId: "", |
| | | dmodelCompanyId: "", |
| | | activeIndex: "1", |
| | | activeIndex2: "1", |
| | | id: null, |
| | | deleted: "", |
| | | //Â rmodelName:Â '', |
| | | }, |
| | | |
| | | rules: {}, |
| | | }; |
| | | }, |
| | | methods: {}, |
| | | created() { |
| | | this.config({ |
| | | api: "/ext/routeProcedureExt", |
| | | "field.id": "id", |
| | | }); |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .text { |
| | | font-weight: 500; |
| | | } |
| | | .title { |
| | | width: 80px; |
| | | height: 30px; |
| | | border-bottom: 4px solid #2E68EC; |
| | | text-align: center; |
| | | color: #2e68ec; |
| | | padding-top: 20px; |
| | | } |
| | | </style> |
| | |
| | | open (role) { |
| | | const formData = new FormData() |
| | | formData.append('type', 1) |
| | | // formData.append('moduleId', 1) |
| | | formData.append('moduleId', 1) |
| | | fetchMenuList(formData) |
| | | .then(records => { |
| | | this.role = role |
| | |
| | | fetchData () { |
| | | const formData = new FormData() |
| | | formData.append('type', 1) |
| | | // formData.append('moduleId', 1) |
| | | formData.append('moduleId', 1) |
| | | fetchTree(formData) |
| | | .then(records => { |
| | | this.data = [] |
| | |
| | | // const formData = new FormData() |
| | | // formData.append('type', role.type) |
| | | // formData.append('moduleId', 1) |
| | | // , moduleId: 1 |
| | | fetchMenuList({ type: type }) |
| | | fetchMenuList({ type: type, moduleId: 1 }) |
| | | .then(records => { |
| | | this.menus = records |
| | | // å¦æä¸ºåºå®è§è²ï¼ååºå®èåä¸å¯æ´æ¹ |
| | |
| | | } |
| | | callback() |
| | | } |
| | | |
| | | export function numRule(rule, value, callback) { |
| | | // debugger |
| | | if (value == null || value < 0 || !value) { |
| | | callback(new Error()) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | |
| | | <el-form-item label="æ¹æ¬¡å·" prop="batch"> |
| | | <el-input v-model="searchForm.batch" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="éå®åå·" prop="salesorder"> |
| | | <el-input v-model="searchForm.salesorder" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è®¡åæ¥æ" prop="planDate"> |
| | | <el-date-picker style="width: 300px;" @change="changeDate" v-model="searchForm.planDate" type="datetimerange" |
| | | value-format="yyyy-MM-dd" range-separator="è³" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ"> |
| | |
| | | <ImportButton |
| | | text="导å
¥" |
| | | template-name="workplans_import_template.xlsx" |
| | | template-path="/template/workplans_import_template.xlsx" |
| | | template-path="template/workplans_import_template.xlsx" |
| | | action="/business/workPlans/importBatch" |
| | | @success="search" |
| | | /> |
| | |
| | | <!-- deleteByIdInBatch --> |
| | | <li><el-button type="danger" @click="deleteByIds" icon="el-icon-delete" v-permissions="['ext:workplans:delete']">æ¹éå é¤</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" border stripe @selection-change="handleSelectionChange"> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="planCode" label="æå计åç¼ç " min-width="190px"> |
| | | <el-table-column prop="planCode" label="æå计åç¼ç " min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.plannedProgress.open('è®¡åæ§è¡è¿åº¦', row)"> |
| | | <span class="long-title-style">{{ row.planCode }}</span> |
| | | </el-button> |
| | | <el-tag type="danger" size="mini" v-if="row.hasExpire">å»¶æ</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="startDate" label="计åå¼å§æ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="planDate" label="计åå®ææ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="planDate" label="è®¡åæ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="factoryName" label="å·¥å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="batch" label="çäº§æ¹æ¬¡å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="num" label="è®¡åæ°é" min-width="100px"></el-table-column> |
| | |
| | | <span v-else-if="row.status == 6">å·²å®å·¥</span> |
| | | <!-- <span v-else-if="row.status == 7">å·²å
¥åº</span> --> |
| | | <span v-else-if="row.status == 8">å·²å
³é</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.paused == 1">æ¯</span> |
| | | <span v-else>å¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å®å·¥æ°" min-width="100px"> |
| | |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="éå®è®¢å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.salesorder">{{ row.salesorder }}</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="urgent" label="ä¼å
级" min-width="80px"> |
| | | <!-- <template slot-scope="{row}"> |
| | | <span v-if="row.urgent">{{ row.urgent }}</span> |
| | | <span v-else>-</span> |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column label="æå" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.paused==0?'å¦':'æ¯' }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="å叿¥æ" min-width="100px"> |
| | | <el-table-column label="å叿¶é´" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.publishDate">{{ row.publishDate }}</span> |
| | | <span v-else>-</span> |
| | |
| | | factoryId: '', |
| | | materialId: '', |
| | | batch: '', |
| | | salesorder: '', |
| | | planStatus: '', |
| | | planCode: '' |
| | | }, |
| | |
| | | @row-style="rowStyle" |
| | | > |
| | | <el-table-column type="selection" fixed="left" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="计ååºå·" fixed="left" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.id }}</span><el-tag type="danger" size="mini" v-if="row.hasExpire">å»¶æ</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="id" label="计ååºå·" fixed="left" min-width="80px"></el-table-column> |
| | | <el-table-column prop="mmodel.name" fixed="left" label="ç©æåç§°" show-overflow-tooltip min-width="140px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" class="materail" @click="showPlan(row.id)"> |
| | | <div class="long-title-style">{{ row.mmodel.name }}</div> |
| | | <span class="long-title-style">{{ row.mmodel.name }}</span> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="mmodel.code" label="ç©æç¼ç " min-width="160px"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="planDate" label="è®¡åæ¥æ" min-width="100px"></el-table-column> |
| | | <el-table-column prop="fmodel.name" label="å·¥å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="pmodel.name" label="å·¥åº" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="long-title-style">{{ row.pmodel ? row.pmodel.name : '-' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="batch" label="çäº§æ¹æ¬¡å·" show-overflow-tooltip min-width="140px"></el-table-column> |
| | | <el-table-column prop="num" label="è®¡åæ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.num + (row.umodel ? row.umodel.name : '') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="workPlanStartDate" label="计åå¼å§æ¥æ" min-width="100px"> |
| | | <!-- <template slot-scope="{row}"> |
| | | {{ row.workPlanStartDate ? row.workPlanStartDate.substring(0, row.workPlanStartDate.length-9) : '-' }} |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column prop="workPlanEndDate" label="计åç»ææ¥æ" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.workPlanStartDate ? row.workPlanStartDate.substring(0, row.workPlanStartDate.length-9) : '-' }} |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="batch" label="çäº§æ¹æ¬¡å·" show-overflow-tooltip min-width="140px"></el-table-column> |
| | | <el-table-column prop="urgent" label="ä¼å
级" min-width="60px"></el-table-column> |
| | | <el-table-column label="计åç¶æ" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | {{ statusToStr(row.status) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="计åç±»å" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <span :style="typeColor(row.type)">{{ typeToStr(row.type) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æå" min-width="60px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.paused == 0 ? 'å¦' : 'æ¯' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="workPlanCode" label="æå计åç¼ç " min-width="140px"></el-table-column> |
| | | <el-table-column prop="distributNoDoneNum" label="å·²åé
æªæ¥å·¥æ°é" min-width="140px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{row.distributNoDoneNum ? (row.distributNoDoneNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span> |
| | |
| | | <el-table-column prop="unqulifiedNum" label="ä¸è¯æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{row.unqulifiedNum ? (row.unqulifiedNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="urgent" label="ä¼å
级" min-width="60px"></el-table-column> |
| | | <el-table-column label="æå" min-width="60px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.paused == 0 ? 'å¦' : 'æ¯' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="workPlanCode" label="主计åç¼ç " min-width="140px"></el-table-column> |
| | | <el-table-column label="ç±»å" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <span :style="typeColor(row.type)">{{ typeToStr(row.type) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="publishDate" label="å叿¥æ" min-width="100px"> |
| | |
| | | if (index === 0) { |
| | | sums[index] = 'å计'; |
| | | return; |
| | | } else if (index === 1 || index === 6 || index === 8 || index === 9 || index === 14 || index === 16 || index === 17) { |
| | | } else if (index === 1 || index === 8 || index === 9 || index === 16 || index === 17) { |
| | | sums[index] = '-'; |
| | | return; |
| | | } else if (index === 8 ) { |
| | |
| | | status: '', |
| | | mixParam: '', |
| | | pgmodelId: '', |
| | | statusList: [0,1,2,3,7] |
| | | statusList: [0,1,2,3] |
| | | }, |
| | | origins: [], |
| | | types: [ |
| | |
| | | { name: 'å·²æ£éª', id: 3 }, |
| | | // { name: 'å·²æ¥å·¥', id: 4 }, |
| | | // { name: 'å·²å
¥åº', id: 5 }, |
| | | { name: 'ç产ä¸', id: 7 } |
| | | // { name: '已忶', id: 6 } |
| | | ], |
| | | productes: [ |
| | | ], |
| | |
| | | <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="doneType" label="è´¨é屿§" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="valid-style">{{ row.qualifiedNum + row.umodel.name }}</span> |
| | | <span v-if="row.materialDonetype==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.materialDonetype==1" class="unvalid-style">ä¸è¯</span> |
| | | <!-- <span v-else-if="row.doneType==2" class="scrap-style">æ¥åº</span> --> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unqualifiedNum" label="ä¸è¯æ°é" min-width="100px"> |
| | | <el-table-column prop="num" 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="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"></el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
å¨å
·" min-width="100px"></el-table-column> --> |
| | | <el-table-column prop="deviceCode" label="设å¤" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="procedureName" label="ç产åå·¥" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="100px"> |
| | | <el-table-column prop="doneType" label="æ¥å·¥ç±»å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.doneType==0" class="valid-style">åæ ¼</span> |
| | | <span v-else-if="row.doneType==1" class="unvalid-style">ä¸è¯</span> |
| | |
| | | <el-table-column prop="num" label="æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span :class="row.doneType==0 ? 'valid-style' : (row.doneType==1 ? 'unvalid-style' : (row.doneType==2 ? 'scrap-style' : ''))">{{ row.num + row.umodel.name }}</span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <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.unqualifiedNum + row.umodel.name}}</span> |
| | | <!-- <span :class="row.materialDonetype==0 ? 'valid-style' : ''">{{ row.num + row.umodel.name }}</span> --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="num" label="æ¥å·¥æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span>{{ row.num + row.umodel.name}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="amodel.code" label="å·¥è£
å¨å
·" min-width="100px"></el-table-column> --> |
| | |
| | | <img :src="$store.state.VUE_APP_CONFIG.LOGO" alt=""> |
| | | </div> |
| | | <h2>{{ $store.state.VUE_APP_CONFIG.COMPANY_NAME }}</h2> |
| | | |
| | | </div> |
| | | <div class="login"> |
| | | <h1>ç³»ç»ç»å½ / LOGIN IN</h1> |
| | |
| | | handlePageChange () { |
| | | const formData = new FormData() |
| | | formData.append('type', 1) |
| | | // formData.append('moduleId', 1) |
| | | formData.append('moduleId', 1) |
| | | this.isWorking.search = true |
| | | fetchTree(formData) |
| | | .then(records => { |
| | |
| | | |
| | | "ansi-styles@^4.1.0": |
| | | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" |
| | | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" |
| | | "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" |
| | | "version" "4.3.0" |
| | | dependencies: |
| | | "color-convert" "^2.0.1" |
| | |
| | | |
| | | "chalk@^4.1.0": |
| | | "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" |
| | | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" |
| | | "resolved" "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz" |
| | | "version" "4.1.2" |
| | | dependencies: |
| | | "ansi-styles" "^4.1.0" |
| | |
| | | |
| | | "color-convert@^2.0.1": |
| | | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" |
| | | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" |
| | | "resolved" "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" |
| | | "version" "2.0.1" |
| | | dependencies: |
| | | "color-name" "~1.1.4" |
| | |
| | | |
| | | "color-name@~1.1.4": |
| | | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" |
| | | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" |
| | | "resolved" "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz" |
| | | "version" "1.1.4" |
| | | |
| | | "color-string@^1.5.4": |
| | |
| | | "resolved" "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1620088667316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz" |
| | | "version" "1.3.0" |
| | | |
| | | "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0", "eslint@^5.0.0 || ^6.0.0", "eslint@>= 1.6.0 < 7.0.0", "eslint@>= 4.12.1", "eslint@>=1.6.0 <7.0.0", "eslint@>=4.19.1", "eslint@>=5.0.0", "eslint@>=5.16.0", "eslint@>=6.2.2": |
| | | "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0", "eslint@^5.0.0 || ^6.0.0", "eslint@^6.7.2", "eslint@>= 1.6.0 < 7.0.0", "eslint@>= 4.12.1", "eslint@>=1.6.0 <7.0.0", "eslint@>=4.19.1", "eslint@>=5.0.0", "eslint@>=5.16.0", "eslint@>=6.2.2": |
| | | "integrity" "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=" |
| | | "resolved" "https://registry.nlark.com/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1620440445769&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-6.8.0.tgz" |
| | | "version" "6.8.0" |
| | |
| | | |
| | | "has-flag@^4.0.0": |
| | | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" |
| | | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" |
| | | "resolved" "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" |
| | | "version" "4.0.0" |
| | | |
| | | "has-symbols@^1.0.1", "has-symbols@^1.0.2": |
| | |
| | | "json5" "^1.0.1" |
| | | |
| | | "loader-utils@^2.0.0": |
| | | "integrity" "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==" |
| | | "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" |
| | | "version" "2.0.4" |
| | | "integrity" "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==" |
| | | "resolved" "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz" |
| | | "version" "2.0.2" |
| | | dependencies: |
| | | "big.js" "^5.2.2" |
| | | "emojis-list" "^3.0.0" |
| | |
| | | |
| | | "supports-color@^7.1.0": |
| | | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" |
| | | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" |
| | | "resolved" "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" |
| | | "version" "7.2.0" |
| | | dependencies: |
| | | "has-flag" "^4.0.0" |
| | |
| | | |
| | | "vue-loader-v16@npm:vue-loader@^16.1.0": |
| | | "integrity" "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==" |
| | | "resolved" "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz" |
| | | "resolved" "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz" |
| | | "version" "16.8.3" |
| | | dependencies: |
| | | "chalk" "^4.1.0" |