Merge remote-tracking branch 'origin/master'
| | |
| | | # 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/'
|
| | |
| | | <div class="common-header"> |
| | | <div class="header"> |
| | | <div class="logo"> |
| | | <div>å·¥åå¹³å°ç«¯</div> |
| | | <div>DMäºå·¥åå¹³å°ç«¯</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.parent != null && form.id == null">为 <em>{{parentName}}</em> æ°å»ºåèå</p> |
| | | <p class="tip" v-if="form.parentId != 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.icon, 'imgurl': form.icon }" |
| | | :file="{ 'imgurlfull': form.fullIcon, 'imgurl': form.icon }" |
| | | :uploadData="uploadData" |
| | | customStyle="width: 80px; height: 80px;" |
| | | tipsLabel="ä¸ä¼ 徿 " |
| | |
| | | uploadData: { |
| | | 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, type) { |
| | | open (title, target, parent) { |
| | | debugger |
| | | this.title = title |
| | | |
| | | console.log('-----',parent); |
| | | 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.type = type |
| | | }) |
| | | return |
| | | } |
| | |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.fullIcon = !!target.icon ? (target.resourcePath + target.icon) : '' |
| | | }) |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/system/menu' |
| | | }) |
| | | }, |
| | | methods: { |
| | | }, |
| | | uploadReverseSuccess(file) { |
| | | // this.form. = file.imgurl; |
| | | this.form.icon = file.imgurlfull; |
| | | this.form.icon = file.imgurl; |
| | | this.form.fullIcon = 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 |
| | | }) |
| | | } |
| | | }, |
| | |
| | | } |
| | | /** |
| | | * |
| | | |
| | | è¿ä¸æ¬¡å¤åå´©å¼å¯è½å°±æ¯ä¸éé仿®¿æå
³ï¼æ¯å®æ£åçæ°æºå å§äºæ¤å°é«å°çé¾è£ï¼èåå
¨é¢å¡æ²ï¼åºç°å¤©åã |
| | | |
| | | ä¸éé仿®¿ç¸æ¯ï¼ä¸ä½å¤å£ç身é«è¥èè«è¬ï¼ä¸»è¦æ¯è¿åº§é殿太大äºä¸å¨æ£åæ ç©·ä»å
ã |
| | | |
| | | æ¾ç¶ï¼ä»ä»¬åç°äºå¶å¡å 人ï¼éå¦ççä¸åç³å忝黿¥è¬ï¼æ¼é»èæ·±ä¸å¯æµååºä¸ç¼ç¼ä¹å
ï¼æ«è§äºè¿æ¥ï¼æä¸ç§é«é«å¨ä¸ï¼ä¿¯è§è¼èè¬çæ°å¿ã |
| | | |
| | | 坿ï¼ä»æ æ³è±å°æ²¡æåæ³å²è¿æ¥ï¼æ´ä¸è½åºæã |
| | | |
| | | å¶å¡ã段德ãé»ççäººé½æ æ§ï¼ä¸äººèªèº«é¾ä¿è¢«å®å¨äºé£éï¼è½å¦æ´»ä¸å»é½ä¸¤è¯´ã |
| | | |
| | | âæ¯æ°â¦â¦è¿ä¹å¤ï¼ï¼âé¾é©¬åè¹ååºå
ç«ï¼è¿è¿çç»çéæ®¿æ¯è¡ï¼ä¸å¯ç²¾åè¿å©çæ ·åã |
| | | |
| | | å¶ç³ä¹å¼ 大äºå´å·´ï¼é³åºä¸å¯æè®®çç¥è²ï¼éï¼âå¸åè¿å°±æ¯ä½ é¼çæ¥æºå¤ï¼â |
| | | |
| | | âç 人å大å¸äºä¸å¾ï¼è¿æ¯è¦åä»ä¹ï¼æå¼äºä¸ä¸ªæ··æ²ä»å°ï¼è¿æ¯è¦æé æå¼ºä»å
µåè¿ä¹å¤æ¯æ°é¸é¼ï¼å夿ç¼ï¼ä¸å»ä¹ä¸è°è½æ¡ä½ï¼â大é»çä¹éæ¼ã |
| | | |
| | | å¨éé仿®¿å¤é¨ä¸ç©æ¯æ°ç¼ç»ï¼æçæå±±ææµ·ï¼ä¸å±åä¸å±ï¼è¥æåè¬æ²éåç人å°åæ¢å¼å¸ï¼ææ éçéçå¨äº¤ç»ã |
| | | |
| | | ä»»ä½ä¸ç¼æ¯æ°é½å¯ä»¥åå¡ä¸åº§å±±èè¿ä¹å¤åèå¨ä¸èµ·ï¼è¿å¾å¤ä¹æ²éï¼å¤ä¹å¤§å¸ä»¥å®é¸æå
µå¨ï¼æ¯æ³ä¸å»åæç¢å
¶ä»å¸å
µåï¼ |
| | | |
| | | 寻常人è¥è½å¯»å°ä¸ç¼æ¯æ°å°±æ¯å¤§æºç¼äºï¼èä»è¿ä¹å¤ï¼è·äºå±ä¸è¬å¯å¸ï¼ç¬¼è¹æ¤å°ï¼å¤æ´å¤§æ°ï¼å·å³¨ç£
æï¼æ¯ä¸ç§å¥è¿¹ã |
| | | |
| | | âèµ·ï¼â |
| | | |
| | | å¶å¡å¤§åäºä¸å£°ï¼é¢éª¨å
ä¸ä¸ªéè²çå°äººçå¼äºç¼çï¼é¿èº«èèµ·ï¼ä¸æ¥è¿åºï¼ä»¥éç为æè¡£ï¼ä»¥é¼ä¸ºå
µå¨ã |
| | | |
| | | ä¸è½´æ¯æ°é¼æ¬å¨å
¶å¤´ä¹ï¼éè²å°äººå¼ å£ä¸å£°æ¸
å¸ï¼å°é¼å¿«éæ¾å¤§ï¼ååé£å»ï¼å¼å§é²¸å¸ç饮ï¼åæ¶é£æµ·éçæ¯æ°ï¼ |
| | | |
| | | âä½ æ¢â¦â¦âéå¦å¤§æï¼ç»æ¯åäºé¢è²ï¼é¾ä»¥ä¸è¯ï¼æ æ³éå®ã |
| | | |
| | | è¿ä¹å¤ä¸ç©æ¯æ°ï¼å³ä¾¿å¤±å»äºæºæ ¹ï¼ä¹æ¯ä¸¾ä¸é¾å¯»çç¥æï¼è¥æ¯å°æï¼ç®ç´æ¯é天çé åã |
| | | |
| | | ä»ä¹ä¸è¥¿æçè´µï¼èªç¶æ¯å¤ä¹å¤§å¸çå
µå¨ï¼èè¿äºçæ¯æ°éæ¯äººæå¤§å¸åå¤ç¨æ¥ç¼å
µçï¼ä»·å¼æ²¡æåæ³è¡¡éã |
| | | |
| | | å¦å¤ä¸¤ä½å¤å£åè²ï¼æå¿æ åï¼ç身é½é¾ä¿äºï¼è¿æä¹å»é»æ¡ï¼ |
| | | |
| | | â人æçå£ä½ï¼ä½ ææé¨ä¼ï¼å¤ºæé åï¼æ¤æ¯å¤§ä»ï¼æè¥è±å°ï¼æä»¥ç¾æ¬¡ï¼å³ä¾¿æ¯ææèä½ä¹æ è¯å¯è¯´ãâéå¦å¹½æ£®çå¼å£ã |
| | | |
| | | âçä½ è±å°æ¶å计è¾å§ï¼ç°å¨ææ²¡ç©ºæçä½ ï¼ç»ææ¾ä¸ªå°æ¹èªå·²æ¸
åå»ãâå¶å¡æ¼«ä¸ç»å¿ç说éã |
| | | |
| | | æ¤æ¶ï¼ä»å¿æ
大好ï¼ä»¥é¼åæ¶æµ·éæ¯æ°ï¼çº³äºé¼å©ºï¼çåç¼äºä¸ä½ã |
| | | |
| | | å
µåè¯åç¶ï¼ä»ç鼿²æ²æµ®æµ®ï¼ä¿æ°ä½åï¼æ¯æ°å¦ä¸æµå½æµ·ï¼åçèç©ºææ²ãå´©å¡ï¼ä¸é¼åä¸ï¼ä¸åå½¼æ¤ã |
| | | |
| | | ä¸ç©æ¯æ°æºä»æ¤åä¸ï¼ç 人çå¸å
µææï¼ä¸åå¤ç½è§ï¼éå¦ç¼çº¢ä¸æå¼ï¼èªç¶æ¯åæ£å¸¸ä¸è¿çäºæ
äºï¼ |
| | | |
| | | é¼ï¼ä¸ºæ¯æ°ç²¾ç²¹ï¼æ¤æ¶ä¸æµ·éæ¯æ°åä¸ï¼æ°´ä¹³å交èï¼æ£ååºä¸ç§ç彿³¢å¨ï¼åæ¯å°è¦è¯çç¥çµå¿äºã |
| | | |
| | | âä½ å彿¶èµ°ï¼æ å½ä½¿ç¨ãâéå¦å·æ£®æ£®çç¬ï¼ä»å
满äºä¸æ¢ï¼ææºæ¯é³ï¼æ¯ä¸å æ©é¥°çã |
| | | |
| | | è¥æ¯è½è¡å¨ï¼ä»è¯å®ä¼å¨ç¬¬ä¸æ¶é´åºæï¼å°å¶å¡ç¢¾åæé£ç°ï¼æ æ¯çéæ¾ã |
| | | |
| | | âä½ æ²¡æè¿ä¸ªæºä¼ï¼å³ä¾¿ä½ æä¸ºäºå£çº§äººç©ï¼ä½ä¹ä¸è§å¾ä¸ä¼æ®è½ï¼è¿æ¯å½å¿ä½ èªå·²å§ãâå¶å¡ç¬éã |
| | | |
| | | ä»å¹¶æ ¹æ¬ä¸è®¡è¾ï¼æä»ä¹æ¯è¯éä¹å¨å®ç¾æ´äººæ¿å¨ï¼ä»ç鼿µ·çº³ç¾å·ï¼å°æææ¯æ°é½ç»æ±²åäºï¼éç交ç»ã |
| | | |
| | | âäºåä¸ï¼ä½ å´å·´æå¥½èå®ç¹ï¼ä¸ç¶æ¬åº§èµä½ ä¸ä¸ªé
è´´ï¼åè®©ä½ æ¥ä¸ªé©´ææ»ãâé¾é©¬æ»¡å£æµè¯ã |
| | | |
| | | å®è¾¹è¯´è¾¹æ¬èµ·äºè¹åï¼åå¤ä¸è¹¶åå°¥è¿å»ï¼è½åäºåä¸åç³ï¼å°éå¦é¥®æ¨ï¼æ»å¨éé仿®¿ä¸ã |
| | | |
| | | âå«ï¼âæ®µå¾·èµ¶ç´§é»æ¢ï¼è®©å®ä¸è¦è½»ä¸¾å¦å¨ã |
| | | |
| | | é£ééæ®¿ï¼ä¸ä»å
亿ä¸ç¼ï¼å°ç¥çé½è¦å没äºï¼ä»ä»¬è¥æ¯è´¸ç¶åºæï¼ä¹è¢«åè¿å»å°±éº»ç¦å¤§äºã |
| | | |
| | | âè¿ç§å¹³è¡¡ä¸å¯æç ´ï¼ä»ä»¬è¥æ¯å½å¤§å°±é¯åºæ¥ï¼å½å°å°±ççæ®è½å§ãâé»çä¹éã |
| | | |
| | | å¶å¡å®å·¥ï¼é¼ä¸ä¸åä¹ä¸ç¥éäºå¤å°åï¼å¥½å¨æ©å·²è¢«ç¼åï¼å
¶éä¸è¢«ä»æ¿åï¼ç°å¨ç ¸åºå»ï¼ä¸å¨ç¨æ³ååï¼ä¼°è®¡ä¸è¬çææå°±å¾ç´æ¥æä¸ºé½ç²ã |
| | | |
| | | âå°åï¼è¿ä¹å®è´µçä¸è¥¿è½å
¥äºä½ çæä¸ï¼ä½ 徿¿ä¸è¥¿è¡¥å¿æä»¬ï¼ä¸ç¶å°±å¹³åï¼æ¢ä½ä»äººï¼æ¬çæ©å°±æ¢äºï¼â大é»çå«å£ã |
| | | |
| | | â廿¯å¤©çåï¼ä»ä»èº«åä½åå
ææåºç好ä¸è¥¿ä¸å°ï¼æä¹ä¸è§ä½ ä¸ç¼´ï¼âå¶å¡æä»èåºã |
| | | |
| | | âæ é天å°ï¼æ¢ç¶è¿æ¯ä½ çè¯éç©ï¼è´«é乿æå人ä¹ç¾ï¼å°æ¶åå°ä»ä¸æ»å¤©çè¡å®«ä¸å¼æ¥çæéè¶çå¤åæä¸ä»½å°±è¡äºãâ |
| | | |
| | | âè¿ææçâ¦â¦âé¾é©¬ä¹å«éã |
| | | |
| | | ä¸ä¸ªæåä¸èµ·å«å·ãå¶ç³å¾æ¬åï¼ä¸å¯è½å»çåå¸å
çå®è´ã |
| | | |
| | | ä¸è¿å¤ï¼ä¸ä½å¤å£çé·æ°ï¼ç¼çççççå 个å°è¾æ¶èµ°äºå¤ä¹å¤§å¸çä¸å±ä»æï¼èä»è¿æ¾èç卿¤è®®è®ºåèµï¼å®å¨è®©ä»ä»¬å¤§æ¨ã |
| | | |
| | | å°¤å
¶æ¯éå¦ï¼èºé½è¦æ°ç¸äºï¼å 为é£å¤´é¾é©¬ä¸å£ä¸ä¸ªäºåä¸ï¼å¬é£å£å»è¯å®ä¸æ¯ä»ä¹å¥½è¯ï¼æçç¼ççä»ï¼æ ¹æ¬å°±æ²¡æå°ä»å½æä¸ä½å£å人ã |
| | | |
| | | âå¦â¦â¦â段德è¹çï¼åæ¯è§å¯å°äºä»ä¹ã |
| | | |
| | | å°å¥½ï¼æå£å人æ¥äºï¼æ¬çå¸ä¸éµçº¹æååºï¼æå¿æèè·³ãâé»çåè²ã |
| | | |
| | | èä»ï¼ä¸ä¸ºå£å人ï¼ç¼ºå°å®èº«ç«å½çèµæ¬ï¼ä»ä»¬èªç¶è°¨æ
å°å¿ï¼å¨è¿æ¥åå¸ä¸äºåç§éµçº¹ï¼åªè¦å£å人é临ï¼å°±ä¼é¢å¼ã |
| | | |
| | | é»çäºè¯æ²¡è¯´ï¼ååºæ£çéµå°ï¼æå¼è空ï¼ç´æ¥æ²¡å
¥äºè¿å»ï¼å¿«éä»è¿ä¸ªå°æ¹æ¶å¤±ã |
| | | |
| | | âç坿ï¼éé仿®¿ä¸å¯æ¯æä¸ä¸ªæ··æ²ä»å°ï¼éé¢å¤åæç¥çãâæ®µå¾·å¾éæ¾ã |
| | | |
| | | âå¤ªå¯æäºï¼âé¾é©¬æ´æ¯åå§ä¸å®ï¼ä½æ²¡æåæ³ï¼å£å人æ¥äºï¼ä»ä»¬åªè½éã |
| | | |
| | | âä¸ç©æ¯æ°æä¸å¯åä½ ä»¬æä¸ï¼é¡¹ä¸äººå¤´ä¹å
ççï¼æä¼å»æ¶åçï¼âéå¦é´æ£®æ£®ç说éã |
| | | |
| | | âäºåä¸ï¼å®å¿ççæ»å§ãâé¾é©¬ç´æ¥ä¸å¥è¯å·®ç¹åæ»ä»ã |
| | | |
| | | âå·â |
| | | |
| | | å
åä¸éªï¼ä»ä»¬æ¶å¤±å¨äºå°åä¸ä¸çã |
| | | |
| | | è¿å¤ï¼ç¥ç§æ³¢å¨æ©æ£ï¼å鍿å¼ï¼ä¸ä¸ªæ»¡å¤´èµ¤åç女åèµ°åºï¼èä½ä¿®åé¿ç«å¥ï¼æ¯ä¸å强大ç夿ã |
| | | |
| | | âè¡çµå¥³çæ¥äºï¼â |
| | | |
| | | ä¸å°äººæå¼ï¼è¿æ¯ä¸ä¸ªå£å人çï¼æ¾å¨ç¶æ± 大åä¼åºç°è¿ï¼æ¾ä¸å§ç¥ç对å³ï¼ä»æ¥ç«ç¶äº²èº«é临ï¼äºæ
è¶æ¥è¶å¤§ï¼è¿ç人ç©ä¹é½åä¸ä½äºã |
| | | |
| | | 她没æè½»ä¸¾å¦å¨ï¼ç»çæ·±æ¸èµ°äºå¾é¿æ¶é´ï¼æä¸æ¥è¿ä¸å»ï¼å½æ¥å°éé仿®¿è¿å¤æ¶ï¼è§å°äºä¸ä½å¤å£è¢«å°ã |
| | | |
| | | âè½°ï¼â |
| | | |
| | | åå»éåä¸å£°å·¨åï¼è¡çµå¥³çå²äºä¸æ¥ï¼èº«ä¸æææè¡è¿¹ï¼èº«ååå·®ç¹ç¸å¼ï¼èå¨å©·ç身åï¼å¦æä¸éå人影ï¼åæ¯åæ¨å°äºæç¹ï¼å
ç¥ä¹ç«å·®ä¸ç¹ççï¼èº«ååç ´ççä¸ææ ·åã |
| | | |
| | | åâ¦â¦â |
| | | |
| | | ä»ä»¬å²ä¸æ¥åï¼å
¨é½å¤§å«ï¼å
æ»¡äºæ¤æï¼å°å䏿ä»çï¼å´ä¸å¯å¤ºå¾ï¼ä¸åº§ä»æ®¿å°±è¶³ä»¥éæ»æäººï¼ |
| | | |
| | | å°¤å
¶æ¯éå¦ï¼åææå±ï¼è¢«å¶å¡ä¸é¾é©¬å¥è½ï¼ç¼çççççä¸ç©æ¯æ°é¼è¢«æ´å«èµ°ï¼é£ç§ä¸æ¢ä¸æ¤æé¾ä»¥è¨è¡¨ã |
| | | |
| | | â人æå£ä½ï¼æå¿
æä½ ï¼ç¥å¤ç乿ä¸äºä½ ï¼âéå¦å¤§å¼ã |
| | | |
| | | è½°éå
声ï¼é³æ´«ä¼¼å¤©é·ï¼å¤§åéè¿å¾å¤ä¿®å£«èº«åä½é¾è£ï¼ä¿®ä¸ºç¨å·®çäººç´æ¥å´©å¼ï¼åæäºè¡é¾ï¼å£è´¤ä¸æï¼ä¼å°¸æ æ°ï¼å¹¶éåè¯ã |
| | | |
| | | â壿°ä¸å°ï¼å°±æ¯ä¸ç¥éï¼è¥æä¸æ¥çæç¥æé临ï¼ä½ ä¼å¦ä½èªå¤ï¼âä¸ä¸ªèèç声é³ä¼ æ¥ã |
| | | |
| | | æ å£°æ æ¯ï¼å¤©çå£å°ç³åçèå£åäººå«æåºç°ï¼å¤äºæ æ³¢ï¼ç«å¨é£éï¼å¦ä¸æ®µæ¯æ¨ã |
| | | |
| | | è¡çµå¥³çå¦ä¸´å¤§æï¼ç¥è²åäºï¼äººæå£å人åªä¸ä¸ªæ¯å¡ä¿ï¼å½å¹´å¨ç¶æ± 大åä¼ä¸ä¸ªç½è¡£ç¥çæå¤æè¯¸å£è¡æº
å¡ç©ºï¼æ»äºä¸æ¹å䏿¹ï¼å
æ°å¤§ä¼¤ã |
| | | |
| | | è¿ä¸ªèå£å人ï¼è¿å¥¹é½ä¸è½åº¦æ·±æµ
ï¼å¿ä¸çªçªç´è·³ï¼ä¸æ¢å¦å¨ã |
| | | |
| | | 嫿ç«å¨è¿éï¼é»é»æ¨æ¼äºä¸çªï¼èåè¹èµ·äºç头ï¼ä¸è¯ä¸åï¼èº«å½±æ¨¡ç³ï¼å空æ¶å¤±äºã |
| | | |
| | | åæ¶ï¼å«ææ¶å¤±çå¹é£ï¼å°é«å°è¯¸å¤ä¿®å£«é½ç»å¸¦èµ°äºï¼ä¼ åéå
¥å°è¿ç©ºã |
| | | |
| | | âè½°â |
| | | |
| | | çªç¶ï¼éé仿®¿ï¼ç¬é´ä¸ä¸ï¼ä¸ä¸åå²ä¸äºå¤©åï¼ä»å
æ æ°ï¼åæ¯ä¸è½®å¤ªé³è¬åå
ï¼å
é¨ä¸ä¸ªè¡åæ·åæ·çâä»âï¼åæä¸éå
ï¼æ å¨è空ä¸ï¼æ¨ªæå¤ä»ã |
| | | |
| | | è¡çµå¥³çãéå¦å 人é£å¿«åéï¼éª¨èä½åï¼å·®ä¸ç¹å¨è¿ä¸ªå°æ¹ç¸å¼ï¼æµèº«é½æ¯è¡ï¼å ä¹è¢«æ´»æ´»éæ»ã |
| | | |
| | | 好ä¸ä¸ªä»æ®¿ï¼æç¶éå¡ï¼çæ¯é¾ä»¥æ³è±¡ï¼ç©¶ç«æ¯è°å¨å
¶å
é¨å»åºä¸ä¸ªå¤§æ´ï¼ççæäºåºæ¥ãâä¸ä¸ªèèç声é³è¯´éï¼æµæå¤§å£æ¾åï¼åºç°å¨å¤©è¾¹ã |
| | | |
| | | å¨å
¶èº«åï¼ææ°ä½å¤å£ç¸éï¼ä¸å
¶å
±è¿éï¼æ¾ç¶å¯¹å¤§åå
çç¥çå¿å¨å¿
å¾ã |
| | | |
| | | å¦ä¸è¾¹ï¼äººæååºç°ä¸é身影ï¼ç½è¡£ççï¼æ£æ¯ç¥çå§å¤ªèï¼ä»ä¹ç°åºäºè¸ªè¿¹ã |
| | | |
| | | ç¥çä¸åºç°ï¼ç°åºé¡¿æ¶ä¸éµå¤§ä¹±ï¼è¯¸å¤å¤æé¢¤åæï¼è¿ä¸äºç¥ç齿¯æµèº«ååï¼ç¶æ± 大åä¼ï¼ç»ä»£ç¥çä¸äººæçä»ä»¬å¿èé½å¯äºã |
| | | |
| | | âå¿ï¼è¿åº§é殿ä¸ä»æå
³ï¼ä¸è¥æçä¸èµ·å°æå¼å¦ä½ï¼çä¸çå°åºæä»ä¹ãâæä¸é身影é临ï¼å¾æ¯å¤èï¼ä¸å°äººå大æï¼æ¯ä¸é¾å·¢ç大å£å°äºã |
| | | |
| | | ä¸åº§å¸åå¼åäºä¸åºæ»å¤©å¤§ä¹±ï¼è¯¸å¤å¤çï¼è¿æå ä½å¤§å£ä¹åä¸ä½äºï¼æ³è¦å¼å¯ï¼è·åæä»çç§å¯ã |
| | | |
| | | â人æå¤§å¸çåï¼å¤äººé¾å¨â¦â¦âå§å¤ªèèªè¯ã |
| | | */ |
| | | </script> |
| | | |
| | |
| | | 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" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('æ°å»ºåèå', null, row)" v-permissions="['system:menu:create']">æ°å»ºåèå</el-button> |
| | | <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 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, 2)" icon="el-icon-plus" v-permissions="['system:menu:create']">æ°å»º</el-button></li> |
| | | <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 @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> |
| | |
| | | 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" icon="el-icon-plus" @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" @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> |
| | |
| | | # æ±æº |
| | | # VUE_APP_BASE_URL = 'https://106.14.220.133:10012/' |
| | | |
| | | # 任康æ¬å° |
| | | # VUE_APP_BASE_URL = 'http://192.168.0.15:10021/' |
| | | # ç¦æ¾ |
| | | VUE_APP_BASE_URL = 'http://192.168.0.36: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 = '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/' |
| | |
| | | # æµè¯ç¯å¢é
ç½® |
| | | 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/' |
| | |
| | | "@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(); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /*-----------------[åå§å]--------------*/
|
| | | *{ font-family: PingFang SC;}
|
| | | /* æ¸
çæµ®å¨ */
|
| | | .cle:after {visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0;}
|
| | | .cle:after{zoom:1;}
|
| | | .clear{clear: both;}
|
| | | .tc{text-align:center;}
|
| | | .tl{text-align:left}
|
| | | .tr{text-align:right}
|
| | | .fl{float: left;}
|
| | | .fr{float: right;}
|
| | |
|
| | | .wp{ width: 94%; margin: 0 auto;}
|
| | | .w30{ width: 30%;}.w40{ width: 40%;}.w47{ width: 47%;}.w48{ width: 48%;}.w49{ width: 49%;}.w50{ width: 50%;}.w60{ width: 60%;}.w80{ width: 80%;}.w90{ width: 90%;}
|
| | |
|
| | | .bg_fa{ background-color: #fafafa;}.bg_f2{ background-color: #f2f2f2;}.bg_f1{ background-color: #f1f1f1;}.bg_f5{ background-color: #f5f5f5;}.bg_f6{ background-color: #f6f6f6;}.bg_f7{ background-color: #f7f7f7;}.bg_f8{ background-color: #f8f8f8;}.bg_e{ background-color: #eee;}.bg_d{ background-color: #ddd;}.bg_w{ background-color: #fff;}.bg_3{ background-color: #333;}.bcf{ color: #fff;}.bc3{ color: #333;}.bcc{ color: #ccc;}.bc9{ color: #999;}.bc6{ color: #666;}
|
| | |
|
| | | .rd4{border-radius: 4px;}.rd5{border-radius: 5px;}.rd6{border-radius: 6px;}.rd8{border-radius: 8px;}.rd10{border-radius: 10px;}.rd15{border-radius: 15px;}.rd20{border-radius: 20px;}.rd30{border-radius: 30px;}.rd40{border-radius: 40px;}.rd50{border-radius: 50px;}.rd60{border-radius: 60px;}.rd70{border-radius: 70px;}.rd80{border-radius: 80px;}.rd90{border-radius: 90px;}.rd100{border-radius: 100px;}.rd120{border-radius: 120px;}.rdhalf{ border-radius:50%}
|
| | |
|
| | | .ml5{ margin-left: 5px;}.ml10{ margin-left: 10px;}.ml15{ margin-left: 15px;}.ml20{ margin-left: 20px;}.ml25{ margin-left: 25px;}.ml30{ margin-left: 30px;}.ml40{ margin-left: 40px;}.ml50{ margin-left: 50px;}.ml60{ margin-left: 60px;}
|
| | |
|
| | | .mt5{ margin-top: 5px;}.mt10{ margin-top: 10px;}.mt15{ margin-top: 15px;}.mt20{ margin-top: 20px;}.mt25{ margin-top: 25px;}.mt30{ margin-top: 30px;}.mt35{ margin-top: 35px;}.mt40{ margin-top: 40px;}.mt45{ margin-top: 45px;}.mt50{ margin-top: 50px;}.mt60{ margin-top: 60px;}.mt70{ margin-top: 70px;}.mt80{ margin-top: 80px;}.mt90{ margin-top: 90px;}.mt100{ margin-top:100px;}.mt150{ margin-top:150px;}.mt200{ margin-top:200px;}.mt-20{ margin-top: -20px;}.mt-30{ margin-top: -30px;}.mt-40{ margin-top: -40px;}
|
| | |
|
| | | .mb5{ margin-bottom: 5px;}.mb10{ margin-bottom: 10px;}.mb15{ margin-bottom: 15px;}.mb20{ margin-bottom: 20px;}.mb25{ margin-bottom: 25px;}.mb30{ margin-bottom: 30px;}.mb40{ margin-bottom: 40px;}.mb50{ margin-bottom: 50px;}.mb60{ margin-bottom: 60px;}.mb80{ margin-bottom: 80px;}
|
| | |
|
| | | .mr5{ margin-right: 5px;}.mr10{ margin-right: 10px;}.mr15{ margin-right: 15px;}.mr20{ margin-right: 20px;}.mr25{ margin-right: 25px;}.mr30{ margin-right: 30px;}.mr40{ margin-right: 40px;}.mr60{ margin-right: 60px;}.mr80{ margin-right: 80px;}.mr100{ margin-right: 100px;}
|
| | |
|
| | | .pl10{ padding-left: 10px;}.pl20{ padding-left: 20px;}.pl25{ padding-left: 25px;}.pl30{ padding-left: 30px;}.pl40{ padding-left: 40px;}.pl50{ padding-left: 50px;}.pl60{ padding-left: 60px;}.pl80{ padding-left: 80px;}.pl100{ padding-left: 100px;}
|
| | |
|
| | | .pr10{ padding-right: 10px;}.pr20{ padding-right: 20px;}.pr25{ padding-right: 25px;}.pr30{ padding-right: 30px;}.pr40{ padding-right: 40px;}.pr50{ padding-right: 50px;}.pr60{ padding-right: 60px;}.pr80{ padding-right: 80px;}.pr100{ padding-right: 100px;}
|
| | |
|
| | | .pb10{ padding-bottom: 10px;}.pb20{ padding-bottom: 20px;}.pb25{ padding-bottom: 25px;}.pb30{ padding-bottom: 30px;}.pb40{ padding-bottom: 40px;}.pb50{ padding-bottom: 50px;}.pb100{ padding-bottom: 100px;}
|
| | |
|
| | | .pt10{ padding-top: 10px;}.pt20{ padding-top: 20px;}.pt25{ padding-top: 25px;}.pt30{ padding-top: 30px;}.pt40{ padding-top: 40px;}.pt50{ padding-top: 50px;}.pt100{ padding-top: 100px;}
|
| | |
|
| | | .plr{ padding-left: 10px; padding-right: 10px;}.plr20{ padding-left: 20px; padding-right: 20px;}.plr25{ padding-left: 25px; padding-right: 25px;}.plr30{ padding-left: 30px; padding-right: 30px;}.plr40{ padding-left: 40px; padding-right: 40px;}.plr50{ padding-left: 50px; padding-right: 50px;}.plr60{ padding-left: 60px; padding-right: 60px;}
|
| | |
|
| | | .ptb10{padding-bottom: 10px; padding-top: 10px;} .ptb15{padding-bottom: 15px; padding-top: 15px;} .ptb20{padding-bottom: 20px; padding-top: 20px;}.ptb25{padding-bottom: 25px; padding-top: 25px;}.ptb30{padding-bottom: 30px; padding-top: 30px;}.ptb35{padding-bottom: 35px; padding-top: 35px;}.ptb40{padding-bottom: 40px; padding-top: 40px;}.ptb50{padding-bottom: 50px; padding-top: 50px;}.ptb60{padding-bottom: 60px; padding-top: 60px;}.ptb80{padding-bottom: 80px; padding-top: 80px;}.ptb100{padding-bottom: 100px; padding-top: 100px;}.ptb150{padding-bottom: 150px; padding-top: 150px;}.ptb200{padding-bottom: 200px; padding-top: 200px;}
|
| | |
|
| | | .p5{ padding:5px}.p10{ padding:10px} .p20{ padding:20px}.p30{ padding:30px}.p2030{ padding:20px 30px}.p40{ padding:40px}.p3040{ padding:30px 40px}
|
| | |
|
| | | .f0{ font-size: 0px;} .f11{ font-size: 11px;}.f12{ font-size: 12px;}.f13{ font-size: 13px;}.f14{ font-size: 14px;}.f16{ font-size: 16px;}.f18{ font-size: 18px;}.f20{ font-size: 20px;}.f26{ font-size: 26px;}.f28{ font-size: 28px;}.f30{ font-size: 30px;}.f32{ font-size: 32px;}.f34{ font-size: 34px;} .f38{ font-size: 38px;}.f40{ font-size: 40px;} .f42{ font-size: 42px;}.f44{ font-size: 44px;}.f48{ font-size: 48px;}.f50{ font-size: 50px;}.f60{ font-size: 60px;}.f64{ font-size: 64px;}.f70{ font-size: 70px;}.f80{ font-size: 80px;}.f90{ font-size: 90px;}.f100{ font-size: 100px;}
|
| | |
|
| | | .img16{ width: 16px; height: 16px;}
|
| | | .img20{ width: 20px; height: 20px;}
|
| | | .img24{ width: 24px; height: 24px;}
|
| | | .img26{ width: 26px; height: 26px;}
|
| | | .img30{ width: 30px; height: 30px;}
|
| | | .img32{ width: 32px; height: 32px;}
|
| | | .img36{ width: 36px; height: 36px;}
|
| | | .img40{ width: 40px; height: 40px;}
|
| | | .img48{ width: 48px; height: 48px;}
|
| | | .img60{ width: 60px; height: 60px;}
|
| | | .img66{ width: 66px; height: 66px;}
|
| | | .img80{ width: 80px; height: 80px;}
|
| | | .img86{ width: 86px; height: 86px;}
|
| | | .img90{ width: 90px; height: 90px;}
|
| | | .img100{ width: 100px; height: 100px;}
|
| | | .img110{ width: 110px; height: 110px;}
|
| | | .img120{ width: 120px; height: 120px;}
|
| | | .img150{ width: 150px; height: 150px;}
|
| | | .img180{ width: 180px; height: 180px;}
|
| | | .img200{ width: 200px; height: 200px;}
|
| | | .imgfull{ width: 100%;}
|
| | |
|
| | | .rimb{ border-bottom: 1px solid #F1F1F1;}
|
| | | .rimt{ border-top: 1px solid #F1F1F1;}
|
| | |
|
| | |
|
| | | .bcover{ background-size: cover; background-position: center center; background-repeat: no-repeat;}
|
| | | .bfull{ background-size: 100% 100%; background-position: center center; background-repeat: no-repeat;}
|
| | |
|
| | | .b{ font-weight: bold;}
|
| | | .ibm{ display: inline-block; vertical-align: middle;}
|
| | | .bbox{ box-sizing: border-box;}
|
| | | .rauto{ margin-left:auto; margin-right:auto}
|
| | | .fixedBottom{position: fixed; left: 0; bottom: 0; width: 100%;}
|
| | | .lh1-6{line-height: 1.6;}
|
| | | .lh1-6{line-height: 1.6;}
|
| | | .lh1-8{line-height: 1.8;}
|
| | | .lh2{line-height: 2;}
|
| | |
|
| | | .sbtn{ display: inline-block; padding: 0.7em 2em; border: 1px solid transparent; box-sizing: border-box; text-align: center;}
|
| | | .mini{ font-size: 18px;}
|
| | | .med{ font-size: 26px;}
|
| | | .def{ font-size: 34px;}
|
| | | .sbtn_w100{ width: 100%; padding-left: 0; padding-right: 0;}
|
| | | .sbtn_green{ color: #fff; background:#65C35D; }
|
| | | .sbtn_green_rim{ color: #65C35D; border-color:#65C35D; }
|
| | | .sbtn_black{ color: #fff; background:#333; }
|
| | | .sbtn_gray{ color: #333; background:#F7F7F7; }
|
| | | .sbtn_black_rim{ color: #333; border-color:#eee; }
|
| | | .sbtn_gray_rim{ color: #999; border-color:#ccc; }
|
| | | /* flex */
|
| | | .flex{ display: flex; flex-wrap: wrap; justify-content: space-between;}
|
| | | .cXY{ display: flex; align-items: center;justify-content: center;}
|
| | | .cY{ display: flex; align-items: center;}
|
| | | .cX{display: flex; justify-content: center}
|
| | | .rowW{ display: flex; flex-wrap: wrap;}
|
| | | .bX{ display: flex; flex-direction: row; justify-content: space-between;} |
| | | .bY{ display: flex; flex-direction:column; justify-content: space-between;} |
| | | .bcX{ display: flex; justify-content: space-between; align-items: center;}
|
| | | .fx1{ flex: 1; overflow: hidden; }
|
| | |
|
| | | .cAXY{ position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);}
|
| | | .shadowA{box-shadow: 0 0 5px 0 #ddd;}
|
| | | .shadowB{ position: relative;}
|
| | | .shadowB::after{ content: ""; display: block; width: 100%; height: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.08); top: -8px; left: 0; position: absolute; }
|
| | |
|
| | |
|
| | | .orange{ color: #EA531B;}
|
| | | .green{ color: #65C35D;}
|
| | | .blue{ color: #3C77DA;}
|
| | | .red{ color: #f00;}
|
| | | .success{ color: #70B603; }
|
| | | .waring{ color: #F59A23; }
|
| | | .error{ color: #f00; }
|
| | | /* /deep/ .uicon-close .u-icon--right{ position: absolute; right: 30px; top: 30px; z-index: 999;} */
|
| | | .popCloseBtn{ position: absolute; width:50px; height:50px; right: 20px; top: 20px;}
|
| | | .fixedHeader{ position: absolute; left: 0; top: 0;}
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="åç±»ç¼ç ï¼" prop="code"> |
| | | <el-input v-model="form.code" :disabled="form.id" placeholder="å¯å¡«åï¼å¿½ç¥å°èªå¨çæ" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åç±»åç§°ï¼" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥åç±»åç§°" v-trim/> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { getListByType } from '@/api/ext/categoryExt' |
| | | import { validateSpecialKey } from '@/assets/js/validate' |
| | | export default { |
| | | name: 'OperaCategoryExtWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | cateType: 0, |
| | | code: '', |
| | | name: '', |
| | | }, |
| | | parent: [], |
| | | // isShow: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | code: [ |
| | | { required: true, message: '请è¾å
¥åç±»ç¼ç ', trigger: 'blur' }, |
| | | { max: 10, message: 'è¾å
¥åæ°ä¸è¶
è¿10', trigger: 'change' }, |
| | | { validator: validateSpecialKey, trigger: 'blur' } |
| | | ], |
| | | name: [ |
| | | { max: 10, message: 'è¾å
¥åæ°ä¸è¶
è¿10', trigger: 'change' }, |
| | | { required: true, message: '请è¾å
¥åç±»åç§°', trigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | isShow: { |
| | | get () { |
| | | return this.form.type !== '0' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | open (title, target, cateType) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | this.form.cateType = cateType |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.cateType = cateType |
| | | // this.form.cateType = parseInt(this.form.cateType) |
| | | // this.getParent() |
| | | }) |
| | | }, |
| | | changeModel (item) { |
| | | this.getParent() |
| | | }, |
| | | getParent () { |
| | | if (!this.isShow) { |
| | | return |
| | | } |
| | | const qurey = '?cateType=' + this.form.cateType + '&' + 'type=' + (this.form.type - 1) |
| | | getListByType( |
| | | qurey |
| | | ).then(res => { |
| | | // console.log(res) |
| | | this.parent = res |
| | | }).catch(err => { |
| | | console.log(err) |
| | | }) |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/ext/categoryExt', |
| | | 'field.id': 'id' |
| | | }) |
| | | } |
| | | } |
| | | </script> |
| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="å·¥åï¼" prop="factoryId"> |
| | | <el-form :model="form" ref="form" label-suffix="ï¼" :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="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="planDate"> |
| | | <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="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="urgent"> |
| | | <el-form-item label="éå®è®¢å" prop="urgent"> |
| | | <el-input v-model="form.urgent" placeholder="请è¾å
¥" max="4" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="ä¼å
级" prop="urgent"> |
| | | <el-input v-model="form.urgent" placeholder="请è¾å
¥" max="4" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | api: '/business/workPlans', |
| | | 'field.id': 'id' |
| | | }) |
| | | this.form.planDate = new Date() |
| | | this.pickerOptions.disabledDate = (time) => { |
| | | // ä¸å¤© |
| | | let tempTime = 3600 * 1000 * 24 |
| | |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * |
| | | */ |
| | | </script> |
| | |
| | | <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"> |
| | | {{ tempC }}<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 () { |
| | | this.tempC = this.userInfo.curComDepartment ? this.userInfo.curComDepartment.name : '' |
| | | if (this.userInfo.curComDepartment) { |
| | | this.tempC = this.userInfo.curComDepartment.name |
| | | this.tempId = this.userInfo.curComDepartment.id |
| | | } |
| | | getDepartmentListByConditon({ |
| | | type: 0 |
| | | }) |
| | |
| | | <div class="menu" :class="{collapse: menuData.collapse}"> |
| | | <div class="logo"> |
| | | <div><img src="@/assets/logo_v2.png"></div> |
| | | <h1 :class="{hidden: menuData.collapse}">{{ rootName() }}</h1> |
| | | <h1 :class="{hidden: menuData.collapse}">DMäºå·¥å</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' }, |
| | | { pattern: /^[0-9a-zA-Z]+$/, message: 'åªå¯ä»¥è¾å
¥æ°åå忝', trigger: 'change' } |
| | | { validator: validateSpecialKey, message: 'åªå¯ä»¥è¾å
¥æ°åã忝æè
è±æå符', trigger: 'blur' }, |
| | | // { pattern: /^[0-9a-zA-Z]+$/, 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 style="color: #777; font-size: 11px; margin-bottom: 15px;">{{ 'ç产人åï¼' + proUserStr(item) }}</div> |
| | | <div class="c3 mt10 mb10 f12" style="display: flex;"> |
| | | <div>è®¡åæ°éï¼{{ form.num }}</div> |
| | | <div class="ml10">计åå¼å·¥æ¥æï¼{{ form.num }}</div> |
| | | </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> |
| | | <p class="time-style"> |
| | | {{ item.produceDate }} |
| | | </p> |
| | | <div class="message-title-temp">产åº</div> |
| | | </div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">ç©æï¼</span> |
| | | <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> |
| | | <div> |
| | | <div style="display: flex;" class="mt10"> |
| | | <span style="color:#666;">产åï¼</span> |
| | | <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"> |
| | | <div v-if="item.unqualifiedNum" class="ml20"> |
| | | <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"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">ç©æï¼</span> |
| | | <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> |
| | | <div> |
| | | <div v-for="(sItem, sIndex) in item.materialList" :key="sIndex"> |
| | | <span style="color:#333333">{{ sItem.name + ' / ' + sItem.num + sItem.unitName }}</span> |
| | | <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> |
| | | </div> |
| | |
| | | <div :class="item.materialDate ? 'message-title' : 'message-title-temp'"> |
| | | åé
|
| | | </div> |
| | | <p class="time-style"> |
| | | {{ item.distributeDate }} |
| | | </p> |
| | | |
| | | </div> |
| | | <div class="right-message"> |
| | | <div style="margin-left: 30px"> |
| | | <span style="color:#666;">åé
æ°éï¼</span> |
| | | <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> |
| | | <div> |
| | | <span style="color:#333333">{{ item.planNum + (form.umodel && form.umodel.name) }}</span> |
| | | <div class="mt10"> |
| | | <span style="color:#666;">åé
æ°éï¼{{ 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 { |
| | | width: 62px; |
| | | display: flex; |
| | | line-height: 20px; |
| | | .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: 0, |
| | | needcheck: 1, |
| | | sortnum: '' |
| | | }, |
| | | iscalculates: [ |
| | |
| | | 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({ |
| | |
| | | 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) |
| | | fetchMenuList({ type: type, moduleId: 1 }) |
| | | // , moduleId: 1 |
| | | fetchMenuList({ type: type }) |
| | | .then(records => { |
| | | this.menus = records |
| | | // å¦æä¸ºåºå®è§è²ï¼ååºå®èåä¸å¯æ´æ¹ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout v-permissions="['ext:categoryext:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form slot="search-form" ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç±»åç§°ï¼" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <!-- <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="cateType"> |
| | | <el-select v-model="searchForm.cateType" clearable filterable placeholder="å
¨é¨"> |
| | | <el-option |
| | | v-for="item in types" |
| | | :key="item.id" |
| | | :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"> |
| | | <li v-permissions="['ext:categoryext:create']"><el-button type="primary" @click="$refs.operaCategoryExtWindow.open('æ°å¢åç±»', null, 3)" >æ°å»º</el-button></li> |
| | | <!-- <li v-permissions="['ext:categoryext:importExcel']"> |
| | | <ImportButton |
| | | text="导å
¥" |
| | | template-name="category_import_template.xlsx" |
| | | template-path="/template/category_import_template.xlsx" |
| | | action="/ext/categoryExt/importExcel" |
| | | @success="search" |
| | | /> |
| | | </li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['ext:categoryext:delete']" type="danger" plain>å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55"></el-table-column> --> |
| | | <!-- <el-table-column prop="cateType" label="å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ cateTypeToStr(row.cateType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="åç±»å±æ§" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ typeToStr(row.type) }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="code" label="åç±»ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç±»åç§°" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column label="ä»å±å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? typeToStr(row.pmodel.type) : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="ä»å±åç±»åç§°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? row.pmodel.name : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button v-permissions="['ext:categoryext:update']" type="text" @click="$refs.operaCategoryExtWindow.open('ç¼è¾', row)">ç¼è¾</el-button> |
| | | <span v-permissions="['ext:categoryext:delete']" style="margin-left:8px"> |
| | | <el-button type="text" @click="deleteById(row)">å é¤</el-button> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryExtWindow ref="operaCategoryExtWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | // import SearchFormCollapse from '@/components/common/SearchFormCollapse' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryExtWindow from '@/components/business/OperaCategoryExtWindow' |
| | | export default { |
| | | name: 'CategoryExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryExtWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | code: '', |
| | | cateType: '3' |
| | | }, |
| | | types: [ |
| | | // 0ç©æ 1å®¢æ· 2å·¥è£
å¨å
· 3ä¸è¯å |
| | | { name: 'ç©æ', id: 0 }, |
| | | // { name: '客æ·', id: 1 }, |
| | | // { name: 'å·¥è£
å¨å
·', id: 2 }, |
| | | { name: 'ä¸è¯åå ', id: 3 } |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设置类å类信æ¯è¡¨', |
| | | api: '/ext/categoryExt', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | typeToStr (type) { |
| | | switch (type) { |
| | | case '0': return '大类' |
| | | case '1': return 'ä¸ç±»' |
| | | case '2': return 'å°ç±»' |
| | | default: return '-' |
| | | } |
| | | }, |
| | | cateTypeToStr (cateType) { |
| | | for (const item of this.types) { |
| | | // console.log(item.id, parseInt(cateType), item.id === parseInt(cateType)) |
| | | if (item.id === parseInt(cateType)) { |
| | | return item.name |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout v-permissions="['ext:categoryext:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form slot="search-form" ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç±»åç§°ï¼" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <!-- <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="cateType"> |
| | | <el-select v-model="searchForm.cateType" clearable filterable placeholder="å
¨é¨"> |
| | | <el-option |
| | | v-for="item in types" |
| | | :key="item.id" |
| | | :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"> |
| | | <li v-permissions="['ext:categoryext:create']"><el-button type="primary" @click="$refs.operaCategoryExtWindow.open('æ°å¢åç±»', null, 0)" >æ°å»º</el-button></li> |
| | | <!-- <li v-permissions="['ext:categoryext:importExcel']"> |
| | | <ImportButton |
| | | text="导å
¥" |
| | | template-name="category_import_template.xlsx" |
| | | template-path="/template/category_import_template.xlsx" |
| | | action="/ext/categoryExt/importExcel" |
| | | @success="search" |
| | | /> |
| | | </li> |
| | | <li><el-button @click="deleteByIdInBatch" v-permissions="['ext:categoryext:delete']" type="danger" plain>å é¤</el-button></li> --> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <!-- <el-table-column type="selection" width="55"></el-table-column> --> |
| | | <!-- <el-table-column prop="cateType" label="å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ cateTypeToStr(row.cateType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="åç±»å±æ§" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ typeToStr(row.type) }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="code" label="åç±»ç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç±»åç§°" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column label="ä»å±å类类å" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? typeToStr(row.pmodel.type) : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <!-- <el-table-column label="ä»å±åç±»åç§°" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | {{ row.pmodel ? row.pmodel.name : '-' }} |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column prop="createTime" label="å建æ¶é´" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button v-permissions="['ext:categoryext:update']" type="text" @click="$refs.operaCategoryExtWindow.open('ç¼è¾', row)">ç¼è¾</el-button> |
| | | <span v-permissions="['ext:categoryext:delete']" style="margin-left:8px"> |
| | | <el-button type="text" @click="deleteById(row)">å é¤</el-button> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | ></pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryExtWindow ref="operaCategoryExtWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | // import SearchFormCollapse from '@/components/common/SearchFormCollapse' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryExtWindow from '@/components/business/OperaCategoryExtWindow' |
| | | export default { |
| | | name: 'CategoryExt', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryExtWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | name: '', |
| | | cateType: '0' |
| | | }, |
| | | types: [ |
| | | // 0ç©æ 1å®¢æ· 2å·¥è£
å¨å
· 3ä¸è¯å |
| | | { name: 'ç©æ', id: 0 }, |
| | | // { name: '客æ·', id: 1 }, |
| | | // { name: 'å·¥è£
å¨å
·', id: 2 }, |
| | | { name: 'ä¸è¯åå ', id: 3 } |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设置类å类信æ¯è¡¨', |
| | | api: '/ext/categoryExt', |
| | | 'field.id': 'id', |
| | | 'field.main': 'name', |
| | | sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | typeToStr (type) { |
| | | switch (type) { |
| | | case '0': return '大类' |
| | | case '1': return 'ä¸ç±»' |
| | | case '2': return 'å°ç±»' |
| | | default: return '-' |
| | | } |
| | | }, |
| | | cateTypeToStr (cateType) { |
| | | for (const item of this.types) { |
| | | // console.log(item.id, parseInt(cateType), item.id === parseInt(cateType)) |
| | | if (item.id === parseInt(cateType)) { |
| | | return item.name |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <!-- 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" stripe @selection-change="handleSelectionChange"> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" border stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="planCode" label="æå计åç¼ç " min-width="150px"> |
| | | <template slot-scope="{row}"> |
| | |
| | | <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"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.finishNum">{{ row.finishNum }}</span> |
| | |
| | | <span v-else>-</span> |
| | | </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.finishUnQualifiedNum">{{ row.finishUnQualifiedNum }}</span> |
| | | <span v-else>-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column 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"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.publishDate">{{ row.publishDate }}</span> |
| | | <span v-else>-</span> |
| | |
| | | <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)"> |
| | | <span class="long-title-style">{{ row.mmodel.name }}</span> |
| | | <div class="long-title-style">{{ row.mmodel.name }}</div> |
| | | </el-button> |
| | | </template> |
| | | </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 => { |
| | |
| | | // 详ç»é
置请åèhttps://cli.vuejs.org/zh/config/#vue-config-js |
| | | // const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length - 1) |
| | | const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length) |
| | | module.exports = { |
| | | publicPath: process.env.VUE_APP_CONTEXT_PATH, |
| | | // publicPath: './', |
| | | outputDir: 'doumeeplant_web', |
| | | // outputDir: 'web', |
| | | outputDir: outputDir || 'web', |
| | | assetsDir: 'static', |
| | | lintOnSave: false, |
| | | devServer: { |
| | | disableHostCheck: true, |
| | | host: '0.0.0.0', |
| | | port: 10086, |
| | | // port: 10086, |
| | | proxy: { |
| | | [process.env.VUE_APP_API_PREFIX]: { |
| | | target: process.env.VUE_APP_BASE_URL, |
| | |
| | | |
| | | "ansi-styles@^4.1.0": |
| | | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" |
| | | "resolved" "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz" |
| | | "resolved" "https://registry.npmjs.org/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.npmmirror.com/chalk/-/chalk-4.1.2.tgz" |
| | | "resolved" "https://registry.npmjs.org/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.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz" |
| | | "resolved" "https://registry.npmjs.org/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.npmmirror.com/color-name/-/color-name-1.1.4.tgz" |
| | | "resolved" "https://registry.npmjs.org/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@^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": |
| | | "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": |
| | | "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.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz" |
| | | "resolved" "https://registry.npmjs.org/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-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==" |
| | | "resolved" "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz" |
| | | "version" "2.0.2" |
| | | "integrity" "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==" |
| | | "resolved" "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" |
| | | "version" "2.0.4" |
| | | 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.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz" |
| | | "resolved" "https://registry.npmjs.org/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.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz" |
| | | "resolved" "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz" |
| | | "version" "16.8.3" |
| | | dependencies: |
| | | "chalk" "^4.1.0" |