| | |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build:pro": "vue-cli-service build", |
| | | "build:staging": "vue-cli-service build --mode staging", |
| | | "build:dev": "vue-cli-service build --mode staging", |
| | | "lint": "vue-cli-service lint", |
| | | "fix": "eslint --ext .js,.vue src --fix" |
| | | }, |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <div class="title-style">客æ·ä¿¡æ¯ <div class="tips">{{form.oepnType ? 'æ£å¼' : 'ä½éª' }}</div><div class="tips">æææï¼{{ form.oepnValidDate.substring(0, form.oepnValidDate.length-9) }}</div></div> |
| | | <el-descriptions direction="horizontal" :column="1"> |
| | | <el-descriptions-item label="客æ·åç§°">{{ form.orgName }}</el-descriptions-item> |
| | | <el-descriptions-item label="客æ·ç®ç§°">{{ form.remark }}</el-descriptions-item> |
| | | <el-descriptions-item label="主ç»å½è´¦å·">{{ form.phone }}</el-descriptions-item> |
| | | <el-descriptions-item label="æå¨å°å">{{ form.addr }}</el-descriptions-item> |
| | | <el-descriptions-item label="ä¼ä¸ä¿¡ç¨ä»£ç ">{{ form.creditCode }}</el-descriptions-item> |
| | | <el-descriptions-item label="è系人">{{ form.linkName }} {{ form.linkPhone }}</el-descriptions-item> |
| | | <el-descriptions-item label="éå®äººå">{{ form.salespersonName }} {{ form.salespersonmobile }}</el-descriptions-item> |
| | | <el-descriptions-item label="è¥ä¸æ§ç
§"> |
| | | <el-descriptions direction="horizontal" :column="1" :colon="false"> |
| | | <el-descriptions-item label="客æ·åç§°ï¼">{{ form.orgName }}</el-descriptions-item> |
| | | <el-descriptions-item label="客æ·ç®ç§°ï¼">{{ form.remark }}</el-descriptions-item> |
| | | <el-descriptions-item label="主ç»å½è´¦å·ï¼">{{ form.phone }}</el-descriptions-item> |
| | | <el-descriptions-item label="æå¨å°åï¼">{{ form.addr }}</el-descriptions-item> |
| | | <el-descriptions-item label="ä¼ä¸ä¿¡ç¨ä»£ç ï¼">{{ form.creditCode }}</el-descriptions-item> |
| | | <el-descriptions-item label="è系人ï¼">{{ form.linkName }} {{ form.linkPhone }}</el-descriptions-item> |
| | | <el-descriptions-item label="éå®äººåï¼">{{ form.salespersonName }} {{ form.salespersonmobile }}</el-descriptions-item> |
| | | <el-descriptions-item label="è¥ä¸æ§ç
§ï¼"> |
| | | <!-- {{ form.fileurlfull }} --> |
| | | <el-image |
| | | v-if="form.fileStoreAddr" |
| | |
| | | :preview-src-list="[form.fileurlfull]" |
| | | ></el-image> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="ç³»ç»è®¿é®å°å"> |
| | | <el-descriptions-item label="ç³»ç»è®¿é®å°åï¼"> |
| | | <a :href="form.systemUrl" target="_blank" rel="noopener noreferrer">{{ form.systemUrl }}</a> |
| | | <span style="cursor: pointer; margin-left: 10px;" @click="copy">å¤å¶</span> |
| | | </el-descriptions-item> |
| | |
| | | open (target) { |
| | | this.title = '客æ·èµæ' |
| | | this.visible = true |
| | | // debugger |
| | | debugger |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | |
| | | |
| | | <style lang="scss" scoped> |
| | | ::v-deep .el-descriptions-item__label { |
| | | width: 90px; |
| | | width: 85px; |
| | | text-align: right; |
| | | display: flex; |
| | | flex-direction: row-reverse; |
| | | } |
| | | .title-style { |
| | | font-weight: 500; |
| | |
| | | </el-form-item> |
| | | </div> |
| | | <div class="tip-line"> |
| | | <el-form-item label="å¼éç¨æ·æ°" prop="openUserNum"> |
| | | <el-input v-model="form.openUserNum" placeholder="请è¾å
¥å¼éç¨æ·æ°" v-trim/> |
| | | <el-form-item label="人æ°éå¶" prop="openUserNum"> |
| | | <el-input v-model="form.openUserNum" placeholder="请è¾å
¥äººæ°éå¶" v-trim/> |
| | | 注ï¼ä¸º0ä¸éå¶äººæ° |
| | | </el-form-item> |
| | | </div> |
| | |
| | | linkPhone: '', |
| | | fileStoreAddr: '', |
| | | fileurlfull: '', |
| | | openUserNum:0 |
| | | openUserNum: 10 |
| | | // fileList: [], |
| | | }, |
| | | isEdit: false, |
| | |
| | | <span>{{ row.oepnType == 1 ? 'æ£å¼' : 'è¯ç¨' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="openUserNum" label="人æ°éå¶" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column prop="phone" label="主账å·" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="linkName" label="è系人" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="linkPhone" label="èç³»çµè¯" align="center" min-width="120px"></el-table-column> |
| | | <el-table-column prop="oepnValidDate" label="æææ" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column prop="openUserNum" label="å¼éç¨æ·æ°" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column prop="salespersonName" label="éå®äººå" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" align="center" min-width="140px"></el-table-column> |
| | | <el-table-column prop="status" label="ç¶æ" align="center" min-width="100px"> |
| | |
| | | // this.$refs.operaApplianceChangeDetailWindow.open('æ´æ¢å详æ
', row) |
| | | findCompanyInfo({ CompanyId: row.id }) |
| | | .then(res => { |
| | | const element = isEdit ? this.$refs.operaClientMangerWindow : this.$refs.operaClientDetailWindow |
| | | element.open(res) |
| | | if (isEdit) { |
| | | this.$refs.operaClientMangerWindow.open({...res, openUserNum: row.openUserNum}) |
| | | } else { |
| | | this.$refs.operaClientDetailWindow.open(res) |
| | | } |
| | | // const element = isEdit ? this.$refs.operaClientMangerWindow : this.$refs.operaClientDetailWindow |
| | | // element.open({...res, ...row}) |
| | | }) |
| | | .catch(err => { |
| | | this.$tip.error(err) |
| | |
| | | <el-form-item label="ç»å½ç¨æ·å" prop="loginUsername"> |
| | | <el-input v-model="searchForm.loginUsername" placeholder="请è¾å
¥ç»å½ç¨æ·å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç»å½IP" prop="ip"> |
| | | <!-- <el-form-item label="ç»å½IP" prop="ip"> |
| | | <el-input v-model="searchForm.ip" placeholder="请è¾å
¥ç»å½IP" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æå¡å¨IP" prop="serverIp"> |
| | |
| | | <el-option value="true" label="ç»å½æå"/> |
| | | <el-option value="false" label="ç»å½å¤±è´¥"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ¥æº" prop="success"> |
| | | </el-form-item> --> |
| | | <el-form-item label="æ¥æº" prop="orgin"> |
| | | <el-select v-model="searchForm.orgin" placeholder="è¯·éæ©ç»å½æ¥æº" clearable @change="search"> |
| | | <el-option value="0" label="PCç»é"/> |
| | | <el-option value="1" label="ééå¹³å°"/> |
| | |
| | | <el-option value="4" label="微信å°ç¨åº"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç»å½æ¶é´" prop="loginTime"> |
| | | <!-- <el-form-item label="ç»å½æ¶é´" prop="loginTime"> |
| | | <el-date-picker |
| | | v-model="searchDateRange" |
| | | type="datetimerange" |
| | |
| | | end-placeholder="ç»ææ¶é´" |
| | | @change="handleSearchTimeChange" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button :loading="isWorking.export" @click="exportExcel">导åº</el-button> |
| | | <!-- <el-button :loading="isWorking.export" @click="exportExcel">导åº</el-button> --> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | :default-sort="{prop: 'loginTime', order: 'descending'}" |
| | | @sort-change="handleSortChange" |
| | | > |
| | | <!-- :default-sort="{prop: 'loginTime', order: 'descending'}" --> |
| | | |
| | | <el-table-column prop="orgin" label="æ¥æº" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{row.orgin | orginText}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="companyUserId" label="ç¨æ·id" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="ä¼ä¸åç§°" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="loginUsername" label="ç»å½ç¨æ·å" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyUserName" label="ç»å½ç¨æ·å" align="center" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.companyUserName || row.loginUsername }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="ip" label="ç»å½IP" align="center" min-width="120px"></el-table-column> |
| | | <el-table-column prop="location" label="ç»å½å°å" align="center" min-width="160px"></el-table-column> |
| | | <el-table-column prop="clientInfo" label="客æ·ç«¯" align="center" min-width="160px"></el-table-column> |
| | |
| | | {{row.success | statusText}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="reason" label="失败åå " min-width="160px"></el-table-column> |
| | | <el-table-column prop="reason" label="失败åå " min-width="160px" show-overflow-tooltip> |
| | | <template slot-scope="{row}"> |
| | | <span class="lang-title-style">{{ row.reason }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | }, |
| | | methods: { |
| | | // æ¶é´æç´¢èå´åå |
| | | handleSearchTimeChange (value) { |
| | | this.searchForm.startTime = null |
| | | this.searchForm.endTime = null |
| | | if (value != null) { |
| | | this.searchForm.startTime = value[0] |
| | | this.searchForm.endTime = value[1] |
| | | } |
| | | this.search() |
| | | } |
| | | |
| | | }, |
| | | created () { |
| | | this.config({ |
| | |
| | | }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | handleSearchTimeChange (value) { |
| | | this.searchForm.startTime = null |
| | | this.searchForm.endTime = null |
| | | if (value != null) { |
| | | this.searchForm.startTime = value[0] |
| | | this.searchForm.endTime = value[1] |
| | | } |
| | | this.search() |
| | | }, |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchDateRange = [] |
| | | this.searchForm.startTime = '' |
| | | this.searchForm.endTime = '' |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | .then(res => { |
| | | if (res.length > 0) { |
| | | data.baseNum = res[0].doneNum |
| | | data.production = res |
| | | start() |
| | | } else { |
| | | data.baseNum = 0 |
| | | } |
| | | data.production = res |
| | | data.fifthScroll = true |
| | | }) |
| | | // ä»åºå®æ¶ä½éç»è®¡ |
| | | // getStockList(companyId.value, departId.value) |
| | |
| | | fontSize: 12 |
| | | } |
| | | }, |
| | | grid: { |
| | | top: 40, |
| | | bottom: 30, |
| | | left: 60 |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | onZero: true, |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: '#fff', |
| | | opacity: .5 |
| | | } |
| | | }, |
| | | axisLabel: { |
| | |
| | | lineStyle: { |
| | | width: 0.5, |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | onZero: true, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: '#fff', |
| | | opacity: .5 |
| | | } |
| | | }, |
| | | axisLabel: { |
| | |
| | | if (scrollDom.offsetHeight == 0) { |
| | | scrollDom = scrollContainer4.value |
| | | } else { |
| | | // console.log(bottom1.value.height); |
| | | let num = scrollContainer4.value.offsetHeight / 35; |
| | | // alert(scrollDom.children.length +"---------------"+num) |
| | | // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | // console.log(scrollDom.offsetHeight); |
| | | let num = scrollDom.offsetHeight / 35; |
| | | num = num + (scrollDom.offsetHeight % 35 > 0 ? 1 : 0) |
| | | // console.log('----------'); |
| | | // console.log('scrollDom.children.length', scrollDom.children.length) |
| | | // console.log('scrollDom.offsetHeight % 35', scrollDom.offsetHeight % 35) |
| | | // console.log('num', num) |
| | | // console.log('----------'); |
| | | // // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ |
| | | if (scrollDom.children.length <= num) { |
| | | clearTimeout(timer4.value) |
| | | return |
| | | } |
| | | // ç»ä»¶è¿è¡æ»å¨ |
| | | scrollDom.scrollTop += 2 |
| | | scrollDom.scrollTop += 1 |
| | | |
| | | // 夿æ¯å¦æ»å¨å°åºé¨ |
| | | if (scrollDom.scrollTop+1 >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { |
| | | console.log('scrollDom.scrollTop', scrollDom.scrollTop); |
| | | console.log('scrollDom.scrollHeight', scrollDom.scrollHeight); |
| | | console.log('scrollDom.clientHeight', scrollDom.clientHeight ); |
| | | // if (scrollDom.scrollTop >= 35) { |
| | | |
| | | // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ |
| | | let first = scrollDom.children[0] |
| | | // å é¤èç¹ |
| | |
| | | // }) |
| | | |
| | | onMounted(() => { |
| | | if (!departId.value) return; |
| | | timer5.value = setInterval(init(), 60000) |
| | | if (departId.value) { |
| | | console.log('onMounted'); |
| | | init() |
| | | timer5.value = setInterval(init, 60000) |
| | | timer.value = setInterval(scrillAction, 100) |
| | | } |
| | | window.addEventListener('resize', () => { |
| | | setTypeChart() |
| | | setDayChart() |
| | | }) |
| | | |
| | | }) |
| | | |
| | | onUnmounted(() => { |
| | | clearTimeout(timer.value) |
| | | clearTimeout(timer5.value) |
| | | |
| | | }) |
| | | </script> |
| | | |
| | |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | onZero: true, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: '#fff', |
| | | opacity: .5 |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#fff' |
| | |
| | | color: ['#fff'] |
| | | } |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | onZero: true, |
| | | lineStyle: { |
| | | width: 1, |
| | | color: '#fff', |
| | | opacity: .5 |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#fff' |
| | |
| | | // https://vitejs.dev/config/ |
| | | export default defineConfig(({mode, command}) => { |
| | | let env = loadEnv(mode, process.cwd(), '') |
| | | console.log('-------'); |
| | | console.log(env.VITE_BASE_PATH); |
| | | console.log(env.VITE_BASE_PATH.replace(env.VITE_BASE_PATH, '')); |
| | | console.log('-------'); |
| | | // console.log('-------'); |
| | | // console.log(env.VITE_BASE_PATH); |
| | | // console.log(env.VITE_BASE_PATH.replace(env.VITE_BASE_PATH, '')); |
| | | // console.log('-------'); |
| | | return { |
| | | base:env.VITE_BASE_CONTEXT, |
| | | plugins: [ |
| | |
| | | |
| | | // æ¬å°è¿è¡é
ç½®ï¼ååå代çé
ç½® |
| | | server: { |
| | | host: '192.168.0.3', |
| | | port: '8080', |
| | | cors: true, // é»è®¤å¯ç¨å¹¶å
è®¸ä»»ä½æº |
| | | open: true, // 卿å¡å¨å¯å¨æ¶èªå¨å¨æµè§å¨ä¸æå¼åºç¨ç¨åº |
| | | //åå代çé
ç½®ï¼æ³¨ærewriteåæ³ï¼å¼å§æ²¡çææ¡£å¨è¿é踩äºå |
| | |
| | | VUE_APP_API_PREFIX = '' |
| | | |
| | | # ç¦æ¾ |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.36:10021/' |
| | | VUE_APP_BASE_URL = 'http://192.168.0.36:10021/' |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.134:10021/' |
| | | |
| | | # 任康æ¬å° |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.15:10021/' |
| | | |
| | | # æ±è |
| | | VUE_APP_BASE_URL = 'http://192.168.0.35:10021/' |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.35:10021/' |
| | | |
| | | # æµè¯æå¡å¨ |
| | | # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' |
| | |
| | | "alias": "eva", |
| | | "command": "page", |
| | | "option": { |
| | | "resources": "salary_param" |
| | | "resources": "unqualified_record" |
| | | } |
| | | } |
| | | } |
| | |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build": "vue-cli-service build", |
| | | "build:staging": "vue-cli-service build --mode staging", |
| | | "build:pro": "vue-cli-service build", |
| | | "build:dev": "vue-cli-service build --mode staging", |
| | | "lint": "vue-cli-service lint", |
| | | "fix": "eslint --ext .js,.vue src --fix" |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/business/unqualifiedRecord/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/business/unqualifiedRecord/exportExcel', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | |
| | | } |
| | | // æ¥è¯¢ææ |
| | | export function checkAllList (data) { |
| | | return request.post('/ext/categoryUnionExt/checkAllList', data) |
| | | return request.post('/ext/categoryExt/list', data) |
| | | } |
| | | |
| | | // å é¤ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/ext/workorderRecordExt/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/ext/workorderRecordExt/exportExcelFeeding', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | |
| | | * éåºç»å½ |
| | | */ |
| | | logout () { |
| | | console.log(this.$store.state.companyId); |
| | | debugger |
| | | // console.log(this.$store.state.companyId); |
| | | // debugger |
| | | logout() |
| | | .then(() => { |
| | | let companyId = this.$store.state.userInfo.company.id |
| | |
| | | name: 'Menu', |
| | | components: { Scrollbar, MenuItems }, |
| | | computed: { |
| | | ...mapState(['menuData']), |
| | | ...mapState(['menuData', 'userInfo']), |
| | | // éä¸çèåindex |
| | | activeIndex () { |
| | | let path = this.$route.path |
| | |
| | | */ |
| | | handleSelect (menuIndex) { |
| | | const menuConfig = this.__getMenuConfig(menuIndex, 'index', this.menuData.list) |
| | | if (menuConfig.url.includes('http')) { |
| | | window.open(`${menuConfig.url}?companyId=${this.userInfo.company.id}`, '_black') |
| | | return |
| | | } |
| | | // æ¾ä¸å°é¡µé¢ |
| | | try { |
| | | require('@/views' + menuConfig.url) |
| | |
| | | </el-form-item> |
| | | <el-form-item label="å叿¥æ">{{ form.publishDate }}</el-form-item> |
| | | <el-form-item label="计å人å">{{ form.usermodel.realname }}</el-form-item> |
| | | <el-form-item label="åé
æ°é">{{ form.workorderDistributNum }}</el-form-item> |
| | | <el-form-item label="åé
æ°é">{{ form.distributNum }}</el-form-item> |
| | | <el-form-item label="å®å·¥æ°é">{{ form.doneNum }}</el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item>--> |
| | | <el-form-item v-else label="åä½ç±»å" prop="types"> |
| | | <!-- <el-form-item label="åä½ç±»å" prop="types"> |
| | | <el-select v-model="form.types" multiple filterable clearable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="(item, index) in unitTypes" |
| | |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | name: '', |
| | | attributeData: 0, |
| | | //types: [], |
| | | // type: null |
| | | type: 1 |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | |
| | | } |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | const newForm = JSON.parse(JSON.stringify(this.form)) |
| | | newForm.types = newForm.types.join(',') |
| | | // newForm.types = newForm.types.join(',') |
| | | this.isWorking = true |
| | | this.api.create(newForm) |
| | | .then(() => { |
| | |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * |
| | | */ |
| | | </script> |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | width="80%" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <GlobalWindow :title="title" width="80%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> |
| | | <div style="margin-bottom: 10px"> |
| | | <span class="title-add-style" style="vertical-align:middle">å
¥åºä¿¡æ¯</span> |
| | | <!-- <el-button type="primary" style="margin-left: 10px;vertical-align:middle">éæ©æ¥æºåæ®</el-button> --> |
| | |
| | | <el-input v-model="form.originCode" disabled placeholder="éæ©æ¥æºåæ®åé»è®¤å¸¦åº" v-trim/> |
| | | </el-form-item> --> |
| | | <el-form-item label="计åå
¥åºæ¥æ" prop="planDate"> |
| | | <el-date-picker |
| | | v-model="form.planDate" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | :picker-options="pickerOptions" |
| | | ></el-date-picker> |
| | | <el-date-picker v-model="form.planDate" value-format="yyyy-MM-dd" placeholder="éæ©æ¥æ" |
| | | :picker-options="pickerOptions"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="å
¥åºç±»å" prop="type"> |
| | | <el-select v-model="form.type" :disabled="disabled" placeholder="è¯·éæ©å
¥åºç±»å"> |
| | | <el-option |
| | | v-for="(item, index) in type" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-option v-for="(item, index) in type" :key="index" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å
¥åºä»åº" prop="warehouseId"> |
| | | <el-select v-model="form.warehouseId" filterable clearable placeholder="è¯·éæ©å
¥åºä»åº" @change="selectWare"> |
| | | <el-option |
| | | v-for="(item, index) in tempWarehouses" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-option v-for="(item, index) in tempWarehouses" :key="index" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="mark"> |
| | | <el-form-item label="åæ®æè¦" prop="abstracts"> |
| | | <el-input v-model="form.abstracts" placeholder="请è¾å
¥åæ®æè¦" v-trim/> |
| | | <el-input v-model="form.abstracts" placeholder="请è¾å
¥åæ®æè¦" v-trim /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | |
| | | <li><el-button type="primary" @click="addMaterial">éæ©ç©æ</el-button></li> |
| | | </ul> |
| | | |
| | | <el-table |
| | | :data="form.woutboundInBodyBeanList" |
| | | border |
| | | stripe |
| | | > |
| | | <el-table :data="form.woutboundInBodyBeanList" border stripe> |
| | | <el-table-column align="center" label="åºå·" type="index" /> |
| | | <el-table-column prop="code" label="ç©æç¼ç " show-overflow-tooltip min-width="160px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | <el-table-column v-if="whLocation.length" label="è´§ä½" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-select v-model="row.locationId" filterable placeholder="è¯·éæ©" @select="selectLocation"> |
| | | <el-option |
| | | v-for="(item, index) in whLocation" |
| | | :key="index" |
| | | :label="item.unionName" |
| | | :value="item.id"> |
| | | <el-option v-for="(item, index) in whLocation" :key="index" :label="item.unionName" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è´¨é屿§" min-width="100px"> |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.qualityType" :disabled='canSelect(scope.$index)' filterable clearable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="(item, index) in properties" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-select v-model="scope.row.qualityType" :disabled='canSelect(scope.$index)' filterable clearable |
| | | placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in properties" :key="index" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="winType==2" label="å·¥åº" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-select v-model="row.procedureId" filterable placeholder="è¯·éæ©" @select="selectProcedure"> |
| | | <el-option |
| | | v-for="(item, index) in row.procedureList" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="winType == 2" label="å·¥åº" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-select v-model="row.procedureId" :disabled="!row.procedureList" filterable placeholder="è¯·éæ©"> |
| | | <el-option v-for="(item, index) in row.procedureList" :key="index" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¹æ¬¡å·" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.batch" placeholder="请è¾å
¥æ¹æ¬¡å·" v-trim/> |
| | | <el-input v-model="row.batch" placeholder="请è¾å
¥æ¹æ¬¡å·" v-trim /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="umodelName" label="åä½" min-width="60px"></el-table-column> |
| | | <el-table-column label="å
¥åºæ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.num" type="number" placeholder="å
¥åºæ°é" v-trim/> |
| | | <el-input v-model="row.num" type="number" placeholder="å
¥åºæ°é" v-trim /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="60px" |
| | | align="center" |
| | | fixed="right" |
| | | > |
| | | <el-table-column label="æä½" min-width="60px" align="center" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <span class="delete-button-style" @click="deleteMaterail(row)">å é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <SelectMaterail |
| | | ref="selectMaterail" |
| | | @selectData="selectData" |
| | | ></SelectMaterail> |
| | | <SelectMaterail ref="selectMaterail" @selectData="selectData"></SelectMaterail> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | GlobalWindow, |
| | | SelectMaterail: () => import('@/components/ext/SelectMaterail') |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | |
| | | origin: 0, |
| | | woutboundInBodyBeanList: [] |
| | | }, |
| | | winType:0, |
| | | winType: 0, |
| | | disabled: false, |
| | | pickerOptions: {}, |
| | | tempWarehouses: [], |
| | |
| | | activeName: 'first', |
| | | whLocation: [], |
| | | type: [ |
| | | {name:'éè´å
¥åº', id: 25} |
| | | { name: 'éè´å
¥åº', id: 25 } |
| | | ], |
| | | tempMaterials: [ |
| | | ], |
| | | selectedMaterails: [], |
| | | properties: [ |
| | | // 0 1ä¸è¯ 2æ¥åº |
| | | {name:'åæ ¼', id: 0}, |
| | | {name:'ä¸è¯', id: 1}, |
| | | {name:'æ¥åº', id: 2}, |
| | | { name: 'åæ ¼', id: 0 }, |
| | | { name: 'ä¸è¯', id: 1 }, |
| | | { name: 'æ¥åº', id: 2 }, |
| | | ] |
| | | } |
| | | }, |
| | | inject: ['warehouses'], |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | api: '/ext/wOutboundExt', |
| | | 'field.id': 'id' |
| | | }) |
| | | this.pickerOptions.disabledDate = (time) => { |
| | | // ä¸å¤© |
| | | let tempTime = 3600 * 1000 * 24 |
| | | return time.getTime() < new Date()-tempTime |
| | | // ä¸å¤© |
| | | let tempTime = 3600 * 1000 * 24 |
| | | return time.getTime() < new Date() - tempTime |
| | | } |
| | | // queryListByCode('?dicCode=SYSTEM_APPLIANCE_TYPE') |
| | | // .then(res => { |
| | |
| | | } |
| | | this.__confirmEdit() |
| | | }, |
| | | open (title, type = 0) { |
| | | open(title, type = 0) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.winType=type |
| | | this.winType = type |
| | | // æ°å»º |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | |
| | | if (title === 'å
¶å®å
¥åº') { |
| | | this.form.planDate = new Date() |
| | | this.form.type = null |
| | | // this.form.woutboundInBodyBeanList = [] |
| | | this.disabled = false |
| | | this.type = [ |
| | | { name:'客鿣éªå
¥åº', id: 26 }, |
| | | { name:'å®¢è¿æ£éªå
¥åº', id: 27 }, |
| | | { name:'åºåè°æ´', id: 28 } |
| | | { name: '客鿣éªå
¥åº', id: 26 }, |
| | | { name: 'å®¢è¿æ£éªå
¥åº', id: 27 }, |
| | | { name: 'åºåè°æ´', id: 28 } |
| | | ] |
| | | } else { |
| | | this.disabled = true |
| | | this.type = [ |
| | | { name:'éè´å
¥åº', id: 25 } |
| | | { name: 'éè´å
¥åº', id: 25 } |
| | | ] |
| | | } |
| | | |
| | |
| | | this.tempWarehouses = this.warehouses() |
| | | } |
| | | }) |
| | | |
| | | |
| | | }, |
| | | selectWare (v) { |
| | | selectWare(v) { |
| | | // console.log(v) |
| | | getListByWarehouseId(v) |
| | | .then(res => { |
| | | console.log(res) |
| | | this.whLocation = res |
| | | if (this.whLocation.length === 0 ) { |
| | | if (this.whLocation.length === 0) { |
| | | let temQualityType = 0 |
| | | for (const item of this.tempWarehouses) { |
| | | if (item.id === v) { |
| | |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | |
| | | |
| | | }, |
| | | setQuality (type) { |
| | | setQuality(type) { |
| | | for (const item of this.form.woutboundInBodyBeanList) { |
| | | item.qualityType = type |
| | | } |
| | |
| | | } |
| | | return !cans |
| | | }, |
| | | selectLocation (v) { |
| | | selectLocation(v) { |
| | | // console.log(index, row); |
| | | // for (const item of this.whLocation) { |
| | | // if (item.id === v) { |
| | |
| | | // } |
| | | // } |
| | | }, |
| | | addMaterial () { |
| | | addMaterial() { |
| | | // console.log('å¢å ç©æ') |
| | | // const ids = this.form.woutboundInBodyBeanList.map(e => { return e.materialId }).join(',') |
| | | this.$refs.selectMaterail.open('éæ©ç©æ', { ids: '', multiple: true, isPurchase:false,queryType:1 }) |
| | | this.$refs.selectMaterail.open('éæ©ç©æ', { ids: '', multiple: true, isPurchase: false, queryType: 1 }) |
| | | }, |
| | | deleteMaterail (row) { |
| | | deleteMaterail(row) { |
| | | // console.log('å é¤ç©æ') |
| | | this.form.woutboundInBodyBeanList.splice(this.form.woutboundInBodyBeanList.indexOf(row), 1) |
| | | }, |
| | | selectData (data) { |
| | | selectData(data) { |
| | | // éæ©ç©æåè° |
| | | console.log(data) |
| | | for (const item of data.selectedMaterails) { |
| | |
| | | code: item.mmodelCode, |
| | | name: item.mmodelUnionName, |
| | | umodelName: item.umodelName, |
| | | procedureList:item.procedureList, |
| | | procedureId:null, |
| | | procedureList: item.procedureList, |
| | | procedureId: item.procedureList ? item.procedureList[0].id : null, |
| | | locationId: this.whLocation.length ? this.whLocation[0].id : null, |
| | | qualityType: this.whLocation.length ? 0 : this.houseProperty, |
| | | materialId: item.id, |
| | |
| | | }) |
| | | } |
| | | }, |
| | | __confirmCreate () { |
| | | __confirmCreate() { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!this.form.woutboundInBodyBeanList.length) { |
| | | this.$tip.error('è³å°éæ©ä¸æ¡ç©æ') |
| | | return |
| | | } |
| | | for (const item of this.form.woutboundInBodyBeanList) { |
| | | if (item.num<=0) { |
| | | if (item.num <= 0) { |
| | | this.$tip.error('å
¥åºç©ææ°éå¿
须大äº0ï¼') |
| | | return |
| | | } |
| | |
| | | .toolbar { |
| | | border-bottom: 1px solid #eee; |
| | | padding-bottom: 10px; |
| | | |
| | | li { |
| | | display: inline-block; |
| | | margin-right: 6px; |
| | | } |
| | | } |
| | | |
| | | .form-data { |
| | | ::v-deep .el-form-item{ |
| | | ::v-deep .el-form-item { |
| | | width: 40%; |
| | | margin-right: 1%; |
| | | } |
| | | |
| | | .mark { |
| | | .el-form-item { |
| | | width: 81%; |
| | | // margin-right: 1%; |
| | | } |
| | | } |
| | | |
| | | ::v-deep .el-form-item__content { |
| | | width: calc(100% - 134px); |
| | | } |
| | | } |
| | | |
| | | .delete-button-style { |
| | | color: red; |
| | | cursor: pointer; |
| | | } |
| | | color: red; |
| | | cursor: pointer; |
| | | } |
| | | </style> |
| | |
| | | */ |
| | | confirm () { |
| | | const selectedPermissions = this.$refs.tree.getCheckedNodes(false, true).filter(item => item.type !== 'module').map(item => item.id) |
| | | console.log(selectedPermissions); |
| | | debugger |
| | | this.isWorking = true |
| | | createRolePermission({ |
| | | roleId: this.role.id, |
| | |
| | | // ç¡®è®¤éæ©æé |
| | | confirm () { |
| | | this.isWorking = true |
| | | console.log(this.selectedIds); |
| | | debugger |
| | | // console.log(this.selectedIds); |
| | | // debugger |
| | | createRolePermission({ |
| | | roleId: this.role.id, |
| | | permissionIds: this.selectedIds |
| | |
| | | // ç¡®è®¤éæ©æé |
| | | confirm () { |
| | | this.isWorking = true |
| | | console.log(this.selectedIds); |
| | | debugger |
| | | createRolePermission({ |
| | | roleId: this.role.id, |
| | | permissionIds: this.selectedIds, |
| | |
| | | line-height: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | // justify-content: center; |
| | | } |
| | | } |
| | | ::v-deep .el-table--small td { |
| | | padding: 0 !important; |
| | | } |
| | | // å¤éæ¡å |
| | | .el-table-column--selection { |
| | | .cell { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:unqualifiedrecord:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="å·¥åç¼ç " prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥å·¥åç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸è¯é¡¹" prop="categoryId"> |
| | | <el-select v-model="searchForm.categoryId" filterable clearable placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="(item, index) in category" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:unqualifiedrecord:exportExcel']"> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:unqualifiedrecord:exportExcel']" @click="exportExcel">导åº</el-button> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | border |
| | | stripe |
| | | > |
| | | <el-table-column type="index" :index="customIndex" label="åºå·" align="center" fixed="left" min-width="80px"></el-table-column> |
| | | <el-table-column prop="workOrderCode" label="å·¥åç¼ç " align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="proceduresName" label="å·¥åº" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="ä¸è¯é¡¹" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="unqualifiedNum" label="æ°é" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createUserName" label="å建人" align="center" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { checkAllList } from '@/api/ext/categoryUnionExt' |
| | | export default { |
| | | name: 'UnqualifiedRecord', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | code: '', |
| | | categoryId: '' |
| | | }, |
| | | category: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: 'å·¥åç±»-æ¥å·¥ä¸è¯è®°å½ç±»å表', |
| | | api: '/business/unqualifiedRecord', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | checkAllList({ cateType: 3 }) |
| | | .then(res => { |
| | | this.category = res |
| | | }) |
| | | .catch(err => { |
| | | console.log(err) |
| | | }) |
| | | }, |
| | | methods: { |
| | | customIndex(index) { |
| | | return (this.tableData.pagination.pageIndex-1) * this.tableData.pagination.pageSize + index + 1 |
| | | } |
| | | }, |
| | | } |
| | | |
| | | </script> |
| | |
| | | <el-option |
| | | v-for="item in appTypes" |
| | | :key="item.id" |
| | | :label="item.combinationName" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | |
| | | 'field.main': 'name' |
| | | }) |
| | | this.search() |
| | | checkAllList({ bmodelCateType: 2 }) |
| | | checkAllList({ cateType: 2 }) |
| | | .then(res => { |
| | | this.appTypes = res |
| | | }) |
| | |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li><el-button type="primary" @click="$refs.operaDeviceExtWindow.open('æ°å»ºè®¾å¤')" v-permissions="['ext:deviceext:create']">æ°å¢</el-button></li> |
| | | <li v-permissions="['ext:deviceExt:importExcel']"> |
| | | <ImportButton |
| | | text="导å
¥" |
| | | template-name="device_import_template.xlsx" |
| | | template-path="/template/device_import_template.xlsx" |
| | | action="/ext/deviceExt/importBatch" |
| | | @success="search" |
| | | /> |
| | | </li> |
| | | <li> |
| | | <el-button |
| | | type="primary" |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="wpmodel.unionName" label="å¾
ç产货ä½" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="long-title-style">{{ row.wpmodel.unionName }}</span> |
| | | <span class="long-title-style">{{ row.wpmodel ? row.wpmodel.unionName : '-' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="wfmodel.unionName" label="å·²å®å·¥è´§ä½" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="long-title-style">{{ row.wfmodel.unionName }}</span> |
| | | <span class="long-title-style">{{ row.wfmodel ? row.wfmodel.unionName : '-' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="stationCode" label="å·¥ä½ç¼å·" min-width="100px"></el-table-column> |
| | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import ImportButton from '@/components/common/ImportButton' |
| | | // import SearchFormCollapse from '@/components/common/SearchFormCollapse' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceExtWindow from '@/components/ext/OperaDeviceExtWindow' |
| | |
| | | export default { |
| | | name: 'DeviceExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceExtWindow, QrCodeLabel }, |
| | | components: { TableLayout, Pagination, OperaDeviceExtWindow, ImportButton, QrCodeLabel }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * |
| | | */ |
| | | </script> |
| | |
| | | return '-' |
| | | }, |
| | | customIndex(index) { |
| | | console.log(); |
| | | return (this.tableData.pagination.pageIndex-1) * this.tableData.pagination.pageSize + index + 1 |
| | | } |
| | | } |
| | |
| | | <el-table-column prop="batch" label="çäº§æ¹æ¬¡å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="promodel.name" label="å·¥åº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="omodel.planNum" label="è®¡åæ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <!-- <template slot-scope="{row}"> |
| | | <span>{{ row.omodel.planNum + row.umodel.name }}</span> |
| | | </template> |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column prop="procedureName" label="ç产åå·¥" show-overflow-tooltip min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | created () { |
| | | this.config({ |
| | | module: 'ææè®°å½', |
| | | api: '/ext/workorderRecordExt', |
| | | api: '/ext/workorderRecordPutExt', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |