Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
| File was renamed from north-glass-erp/northglass-erp/src/stores/sd/companySet/½ð»ªÀÖ¶¯.js |
| | |
| | | export default defineStore('companyInfo', { |
| | | |
| | | state: () => ({ |
| | | companyName: 'éåå¸ä¹å¨æºè½ç§ææéå
¬å¸', |
| | | companyName: 'éåç¦å天æç»çæéå
¬å¸', |
| | | address:'æµæ±çéåå¸éä¸åºæ¹å®
éå·¥ä¸åè½åºé¹¤å²©è¡28å·2å·', |
| | | telephone:'189 3119 1362 èµåé¿', |
| | | fax:'', |
| | |
| | | <script setup> |
| | | import ComputeCard from "@/views/pp/glassOptimize/page/ComputeCard.vue"; |
| | | import ComputeDetail from "@/views/pp/glassOptimize/page/ComputeDetail.vue"; |
| | | import Compute from "@/views/pp/glassOptimize/page/Compute.vue"; |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | 123 |
| | | <div style="width: 100%; height: 100%;"> |
| | | |
| | | <div id="compute"> |
| | | <compute/> |
| | | </div> |
| | | |
| | | <div id="computeCard"> |
| | | <compute-card/> |
| | | </div> |
| | | |
| | | <div id="computeDetail"> |
| | | <compute-detail/> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | #compute{ |
| | | float: left; |
| | | margin-top: -30px; |
| | | margin-bottom: 2%; |
| | | width: 100%; |
| | | height: 40%; |
| | | } |
| | | #computeCard{ |
| | | margin-top: 90px; |
| | | width: 64%; |
| | | height: 40%; |
| | | float: left; |
| | | } |
| | | #computeDetail{ |
| | | margin-top: 90px; |
| | | margin-left: 1%; |
| | | float: left; |
| | | width: 35%; |
| | | height: 40%; |
| | | } |
| | | </style> |
| | |
| | | import ProjectDetail from "@/views/pp/glassOptimize/page/ProjectDetail.vue" |
| | | import ProjectCreate from "@/views/pp/glassOptimize/ProjectCreate.vue" |
| | | import GlassComputed from "@/views/pp/glassOptimize/GlassComputed.vue"; |
| | | import ProjectMange from "@/views/pp/glassOptimize/ProjectMange.vue"; |
| | | |
| | | import {ref} from "vue"; |
| | | let dialogVisible = ref(false) |
| | |
| | | |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | title="å·¥ç¨å建" |
| | | :title="detailPage ===1? 'å建工ç¨' : detailPage ===2? 'å·¥ç¨ç®¡ç' : detailPage ===3? '模æè®¡ç®':''" |
| | | destroy-on-close |
| | | style="width: 90%;height:90%;margin-top: 3vh" |
| | | > |
| | | <project-create v-if="detailPage===1" /> |
| | | <glass-computed v-if="detailPage===2"/> |
| | | <project-mange v-if="detailPage===2" /> |
| | | <glass-computed v-if="detailPage===3" /> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | |
| | | <project-list/> |
| | | </div> |
| | | |
| | | |
| | | |
| | | </div> |
| | | </template> |
| | | |
| New file |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {ElDatePicker} from "element-plus"; |
| | | import useOrderInfoStore from "@/stores/sd/order/orderInfo"; |
| | | |
| | | const { t } = useI18n() |
| | | |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | height:'100%', |
| | | loading: false, |
| | | border: "full",//è¡¨æ ¼å è¾¹æ¡ |
| | | keepSource: true,//ä¿ææºæ°æ® |
| | | align: 'center',//æåå±
ä¸ |
| | | stripe:true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | id: 'ProjectMange', |
| | | scrollX:{enabled: true}, |
| | | scrollY:{ enabled: true ,gt:0},//å¼å¯èææ»å¨ |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //çéé
置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | }, |
| | | /*formConfig: { |
| | | data: { |
| | | width: '', |
| | | height: '', |
| | | quantity: '' |
| | | }, |
| | | items: [ |
| | | { field: 'width', title: t('order.width')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'height', title: t('order.height')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'quantity', title: t('order.quantity')+':', itemRender: { name: 'VxeInput' } }, |
| | | { |
| | | itemRender: { |
| | | name: 'VxeButtonGroup', |
| | | options: [ |
| | | { type: 'submit', content: t('craft.sure'), status: 'primary' }, |
| | | { type: 'reset', content: t('product.msg.reset') } |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | },*/ |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'id', width: 100,title: 'å·¥ç¨å·',}, |
| | | {field: '',width: 50,title: 'åç§°',}, |
| | | {field: 'id', width: 50,title: 'èç³»',}, |
| | | {field: 'id', width: 50,title: 'å度',}, |
| | | {field: 'id', width: 50,title: 'ç±»å',}, |
| | | {field: 'id', width: 50,title: 'ç¶æ',}, |
| | | {field: 'id', width: 50,title: 'æ°é',}, |
| | | {field: 'id', width: 50,title: 'é¢ç§¯',}, |
| | | {field: 'id', width: 100,title: 'æµç¨å¡æ°é',}, |
| | | {field: 'id', width: 100,title: 'åçä½¿ç¨æ°',}, |
| | | {field: 'id', width: 70,title: 'æµç¨å¡',}, |
| | | {field: 'id', width: 100,title: 'é¢åè£
è½½ç',}, |
| | | {field: '',width: 100,title: 'é¢åçæ°',}, |
| | | {field: '',width: 100,title: 'å¹³ååè£ç',}, |
| | | {field: '',width: 100,title: 'ææåè£ç',}, |
| | | {field: '',width: 100,title: 'å°¾çåè£ç',}, |
| | | {field: '',width: 100,title: 'åæä½¿ç¨æ°',}, |
| | | {field: '',width: 100,title: 'å¹³ååè£ç',}, |
| | | {field: '',width: 50,title: '夿³¨',}, |
| | | {field: '',width: 100,title: 'å建人',}, |
| | | {field: '',width: 100,title: 'å建æ¶é´',}, |
| | | {field: '',width: 100,title: 'ä¿®æ¹æ¶é´',}, |
| | | ],//è¡¨å¤´åæ° |
| | | data:null,//è¡¨æ ¼æ°æ® |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots:{ |
| | | buttons: "toolbar_buttons" |
| | | }, |
| | | }, |
| | | |
| | | }) |
| | | const oderInfo = useOrderInfoStore() |
| | | |
| | | //å®ä¹å·¥ç¨ç¶æ |
| | | const optionVal = ref('0') |
| | | const options = [ |
| | | { |
| | | value: '0', |
| | | label: 'å
¨é¨', |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: '1', |
| | | }, |
| | | { |
| | | value: '2', |
| | | label: '2', |
| | | }, |
| | | { |
| | | value: '3', |
| | | label: '10', |
| | | }, |
| | | { |
| | | value: '4', |
| | | label: '20', |
| | | }, |
| | | { |
| | | value: '5', |
| | | label: '100', |
| | | }, |
| | | { |
| | | value: '6', |
| | | label: '200', |
| | | }, |
| | | ] |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div id="mange"> |
| | | <div id="select"> |
| | | <span>ä¼åæ¥æ</span> |
| | | <el-date-picker |
| | | style="margin-left:10px; margin-top: -5px; " |
| | | v-model="oderInfo.mangeDate" |
| | | type="daterange" |
| | | format="YYYY/MM/DD" |
| | | value-format="YYYY-MM-DD" |
| | | :start-placeholder="$t('basicData.startDate')" |
| | | :end-placeholder="$t('basicData.endDate')" |
| | | :default-time="defaultTime" |
| | | |
| | | /> |
| | | <el-select |
| | | style="margin-left:10px; margin-top: -5px; " |
| | | :default-first-option="true" |
| | | ref="getSelect" |
| | | v-model="optionVal" |
| | | class="m-2" |
| | | @change="getWorkOrder" |
| | | > |
| | | |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | |
| | | <el-button |
| | | style="margin-left:10px;margin-top: -5px" |
| | | @click="searchByDateRange" |
| | | type="primary" :icon="Search"> |
| | | æ¥è¯¢ |
| | | </el-button> |
| | | </div> |
| | | |
| | | <vxe-grid |
| | | @filter-change="filterChanged" |
| | | height="100%" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | > |
| | | <template #num2_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" @change="changeFilterEvent($event, option, $panel)"> |
| | | <vxe-option value="0" :label="$t('basicData.unchecked')"></vxe-option> |
| | | <vxe-option value="1" :label="$t('basicData.selected')"></vxe-option> |
| | | </vxe-select> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input |
| | | type="type" |
| | | v-model="option.data" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </vxe-grid> |
| | | <div id="last"> |
| | | <span> |
| | | å°çæ°<vxe-input size="small" class="input"></vxe-input> |
| | | å°çé¢<vxe-input size="small" class="input"></vxe-input> |
| | | åçæ°<vxe-input size="small" class="input"></vxe-input> |
| | | åçé¢<vxe-input size="small" class="input"></vxe-input> |
| | | </span> |
| | | <span style="float: right"> |
| | | <el-button type="primary" class="input">é¢åçå¾</el-button> |
| | | <el-button type="primary" class="input">模æè®¡ç®</el-button> |
| | | <el-button type="primary" class="input">ä¼åçå¾</el-button> |
| | | <el-button type="primary" class="input">ä¼åæç</el-button> |
| | | <el-button type="primary" class="input">æ°æ®å¯¼åº</el-button> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | #mange{ |
| | | width: 100%; |
| | | height: 85%; |
| | | } |
| | | #last { |
| | | margin-top: 10px; |
| | | } |
| | | .input{ |
| | | width: 80px; |
| | | margin-left: 15px; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | import {Minus, Plus, Search} from "@element-plus/icons-vue"; |
| | | |
| | | const {t} = useI18n() |
| | | |
| | | const xGrid = ref() |
| | | |
| | | const gridOptions = reactive({ |
| | | height: '100%', |
| | | loading: false, |
| | | border: "full",//è¡¨æ ¼å è¾¹æ¡ |
| | | keepSource: true,//ä¿ææºæ°æ® |
| | | align: 'center',//æåå±
ä¸ |
| | | stripe: true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | id: 'Compute', |
| | | scrollX: {enabled: true}, |
| | | scrollY: {enabled: true, gt: 0},//å¼å¯èææ»å¨ |
| | | showOverflow: true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //çéé
置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | }, |
| | | /*formConfig: { |
| | | data: { |
| | | width: '', |
| | | height: '', |
| | | quantity: '' |
| | | }, |
| | | items: [ |
| | | { field: 'width', title: t('order.width')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'height', title: t('order.height')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'quantity', title: t('order.quantity')+':', itemRender: { name: 'VxeInput' } }, |
| | | { |
| | | itemRender: { |
| | | name: 'VxeButtonGroup', |
| | | options: [ |
| | | { type: 'submit', content: t('craft.sure'), status: 'primary' }, |
| | | { type: 'reset', content: t('product.msg.reset') } |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | },*/ |
| | | columns: [ |
| | | {field: 'id', width: 70, title: 'åºå·', filters: [{data: ''}], slots: {default: 'state', filter: 'num2_filter'}}, |
| | | {field: '', width: 100, title: 'ç徿°'}, |
| | | {field: '', width: 100, title: 'è£
è½½ç'}, |
| | | {field: '', width: 100, title: 'æµç¨å¡æ°'}, |
| | | {field: '', width: 100, title: '模æçæ°'}, |
| | | { |
| | | field: 'processId', |
| | | width: 150, |
| | | title: t('processCard.processId'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | ],//è¡¨å¤´åæ° |
| | | data: null,//è¡¨æ ¼æ°æ® |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots: { |
| | | buttons: "toolbar_buttons" |
| | | }, |
| | | }, |
| | | |
| | | }) |
| | | let emit = defineEmits([ |
| | | 'changeDialog' |
| | | ]) |
| | | let ProjectName = ref('') |
| | | const changeOrderType = async () => { |
| | | await emit('changeDialog', ProjectName.value) |
| | | ProjectName.value = null |
| | | } |
| | | // è¿åº¦æ¡é¢è²åæé®å å |
| | | const percentage1 = ref(80) |
| | | const percentage2 = ref(50) |
| | | const customColors = [ |
| | | {color: '#f56c6c', percentage: 20}, |
| | | {color: '#e6a23c', percentage: 40}, |
| | | {color: '#5cb87a', percentage: 60}, |
| | | {color: '#1989fa', percentage: 80}, |
| | | {color: '#162ce5', percentage: 100}, |
| | | ] |
| | | const handleButtonClick = (progressIndex, isIncrease) => { |
| | | let percentageRef; |
| | | if (progressIndex === 1) { |
| | | percentageRef = percentage1; |
| | | } else if (progressIndex === 2) { |
| | | percentageRef = percentage2; |
| | | } |
| | | if (isIncrease && percentageRef.value < 100) { |
| | | percentageRef.value += 10; |
| | | } else if (!isIncrease && percentageRef.value > 0) { |
| | | percentageRef.value -= 10; |
| | | } |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div style="width: 100%;height: 100%"> |
| | | <!--模æè®¡ç®è¡¨å¤´--> |
| | | <div id="title" style="margin-top: -10px"> |
| | | <span> |
| | | å·¥ç¨ç¼å· |
| | | <vxe-select size="small" style="margin-left: 20px"></vxe-select> |
| | | <el-button type="primary" :icon="Search" style="margin-left: 20px">æ¥è¯¢</el-button> |
| | | </span> |
| | | <span style="float: right ; margin-right: 120px"> |
| | | å·¥ç¨æ··æç级 |
| | | <vxe-select size="small" style="margin-left: 20px"> |
| | | <vxe-option value="null" >䏿··æ</vxe-option> |
| | | <vxe-option value="null" >轻度混æ</vxe-option> |
| | | <vxe-option value="null" >ä¸åº¦æ··æ</vxe-option> |
| | | <vxe-option value="null" >é«åº¦æ··æ</vxe-option> |
| | | </vxe-select> |
| | | <el-button type="primary" style="margin-left: 20px">模æè®¡ç®</el-button> |
| | | <el-button type="primary" style="margin-left: 50px">ä¿å</el-button> |
| | | </span><br> |
| | | <div class="demo-progress" style="margin-top: 5px"> |
| | | <div style="display: flex; align-items: center"> |
| | | <span>é¢åæå¤§è£
è½½</span> |
| | | <!--è¿åº¦æ¡è®¾ç½®--> |
| | | <el-progress style="max-width: 300px; flex: 1; margin-left: 10px" :percentage="percentage1" |
| | | :color="customColors"/> |
| | | <el-button-group style="margin-left: 10px;"> |
| | | <el-button :icon="Minus" @click="handleButtonClick(1,false)"/> |
| | | <el-button :icon="Plus" @click="handleButtonClick(1,true)"/> |
| | | </el-button-group> |
| | | <span style="float: right ; margin-left: 250px;"> |
| | | å·¥ç¨ç»çç<vxe-input size="small" class="input" ></vxe-input> |
| | | 宽轴é´é<vxe-input size="small" class="input"></vxe-input> |
| | | ç宽(mm)<vxe-input size="small" class="input"></vxe-input> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | <br> |
| | | <div class="demo-progress" style="margin-top: -10px"> |
| | | <div style="display: flex; align-items: center"> |
| | | <span>çç笼空é²åº¦</span> |
| | | <!--è¿åº¦æ¡è®¾ç½®--> |
| | | <el-progress style="max-width: 300px; flex: 1; margin-left: 10px" :percentage="percentage2" |
| | | :color="customColors"/> |
| | | <el-button-group style="margin-left: 10px;"> |
| | | <el-button :icon="Minus" @click="handleButtonClick(2,false)"/> |
| | | <el-button :icon="Plus" @click="handleButtonClick(2,true)"/> |
| | | </el-button-group> |
| | | <span style="float: right ; margin-left: 242px;"> |
| | | å çæ¶é´(ç§)<vxe-input size="small" class="input"></vxe-input> |
| | | é¿è½´é´é<vxe-input size="small" class="input"></vxe-input> |
| | | çé¿(mm)<vxe-input size="small" class="input"></vxe-input> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <vxe-grid |
| | | size="small" |
| | | @filter-change="filterChanged" |
| | | height="100%" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | > |
| | | <template #num2_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" |
| | | @change="changeFilterEvent($event, option, $panel)"> |
| | | <vxe-option value="0" :label="$t('basicData.unchecked')"></vxe-option> |
| | | <vxe-option value="1" :label="$t('basicData.selected')"></vxe-option> |
| | | </vxe-select> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input |
| | | type="type" |
| | | v-model="option.data" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </vxe-grid> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | .input{ |
| | | width: 80px; |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | </style> |
| New file |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | const { t } = useI18n() |
| | | |
| | | const xGrid = ref() |
| | | |
| | | const gridOptions = reactive({ |
| | | |
| | | height:'100%', |
| | | loading: false, |
| | | border: "full",//è¡¨æ ¼å è¾¹æ¡ |
| | | keepSource: true,//ä¿ææºæ°æ® |
| | | align: 'center',//æåå±
ä¸ |
| | | stripe:true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | id: 'ComputeCard', |
| | | scrollX:{enabled: true}, |
| | | scrollY:{ enabled: true ,gt:0},//å¼å¯èææ»å¨ |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //çéé
置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | }, |
| | | /*formConfig: { |
| | | data: { |
| | | width: '', |
| | | height: '', |
| | | quantity: '' |
| | | }, |
| | | items: [ |
| | | { field: 'width', title: t('order.width')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'height', title: t('order.height')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'quantity', title: t('order.quantity')+':', itemRender: { name: 'VxeInput' } }, |
| | | { |
| | | itemRender: { |
| | | name: 'VxeButtonGroup', |
| | | options: [ |
| | | { type: 'submit', content: t('craft.sure'), status: 'primary' }, |
| | | { type: 'reset', content: t('product.msg.reset') } |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | },*/ |
| | | columns:[ |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: 50}, |
| | | {field: 'checkbox', title: 'å
许横æ', width: 100}, |
| | | {field: 'checkbox', title: 'é¢å', width: 70}, |
| | | {field: 'processId',width: 150, title: t('processCard.processId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 70, title: 'å±',filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }}, |
| | | {field: 'id',width: 150, title: 'æ»å±æ°',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 100, title: 'è§æ ¼',filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }}, |
| | | {field: 'quantity',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'orderDetail.productName',width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'orderDetail.computeGrossArea',width: 150, title: t('order.area'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '',width: 70, title: 'merge'} |
| | | |
| | | ],//è¡¨å¤´åæ° |
| | | data:null,//è¡¨æ ¼æ°æ® |
| | | |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots:{ |
| | | buttons: "toolbar_buttons" |
| | | }, |
| | | }, |
| | | |
| | | }) |
| | | let emit = defineEmits([ |
| | | 'changeDialog' |
| | | ]) |
| | | let Membrane = ref('éæ©èç³»') |
| | | |
| | | const changeOrderType = async ()=>{ |
| | | await emit('changeDialog',Membrane.value) |
| | | Membrane.value = null |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div style="width: 100%;height: 100%"> |
| | | <span>æµç¨å¡</span> |
| | | <vxe-grid |
| | | size="small" |
| | | @filter-change="filterChanged" |
| | | height="100%" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | > |
| | | <template #num2_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" @change="changeFilterEvent($event, option, $panel)"> |
| | | <vxe-option value="0" :label="$t('basicData.unchecked')"></vxe-option> |
| | | <vxe-option value="1" :label="$t('basicData.selected')"></vxe-option> |
| | | </vxe-select> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input |
| | | |
| | | type="type" |
| | | v-model="option.data" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </vxe-grid> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| New file |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | const { t } = useI18n() |
| | | |
| | | const xGrid = ref() |
| | | |
| | | const gridOptions = reactive({ |
| | | height:'100%', |
| | | loading: false, |
| | | border: "full",//è¡¨æ ¼å è¾¹æ¡ |
| | | keepSource: true,//ä¿ææºæ°æ® |
| | | align: 'center',//æåå±
ä¸ |
| | | stripe:true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | id: 'ComputeDetail', |
| | | scrollX:{enabled: true}, |
| | | scrollY:{ enabled: true ,gt:0},//å¼å¯èææ»å¨ |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //çéé
置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | }, |
| | | /*formConfig: { |
| | | data: { |
| | | width: '', |
| | | height: '', |
| | | quantity: '' |
| | | }, |
| | | items: [ |
| | | { field: 'width', title: t('order.width')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'height', title: t('order.height')+':', itemRender: { name: 'VxeInput' } }, |
| | | { field: 'quantity', title: t('order.quantity')+':', itemRender: { name: 'VxeInput' } }, |
| | | { |
| | | itemRender: { |
| | | name: 'VxeButtonGroup', |
| | | options: [ |
| | | { type: 'submit', content: t('craft.sure'), status: 'primary' }, |
| | | { type: 'reset', content: t('product.msg.reset') } |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | },*/ |
| | | columns:[ |
| | | {field: 'id',width: 70, title: 'åºå·',filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }}, |
| | | {field:'state',width: 150,title: t('order.width'),filters:[{ data: '' }], slots: { default: 'state',filter: 'num2_filter' }}, |
| | | {type: 'seq',width: 150,title: t('order.height')}, |
| | | {field: 'id',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.buildingNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('craft.TrademarkAttribute'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | |
| | | ],//è¡¨å¤´åæ° |
| | | data:null,//è¡¨æ ¼æ°æ® |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots:{ |
| | | buttons: "toolbar_buttons" |
| | | }, |
| | | }, |
| | | |
| | | }) |
| | | let emit = defineEmits([ |
| | | 'changeDialog' |
| | | ]) |
| | | let ProjectName = ref('') |
| | | const changeOrderType = async ()=>{ |
| | | await emit('changeDialog',ProjectName.value) |
| | | ProjectName.value = null |
| | | } |
| | | </script> |
| | | |
| | | <template> |
| | | <div style="width: 100%;height: 100%"> |
| | | <span>æµç¨å¡è¯¦æ
</span> |
| | | <vxe-grid |
| | | size="small" |
| | | @filter-change="filterChanged" |
| | | height="100%" |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | > |
| | | <template #num2_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" @change="changeFilterEvent($event, option, $panel)"> |
| | | <vxe-option value="0" :label="$t('basicData.unchecked')"></vxe-option> |
| | | <vxe-option value="1" :label="$t('basicData.selected')"></vxe-option> |
| | | </vxe-select> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input |
| | | type="type" |
| | | v-model="option.data" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </vxe-grid> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | const { t } = useI18n() |
| | | |
| | | const xGrid = ref() |
| | |
| | | <vxe-option value="-2" :label="$t('searchOrder.cancelledOrders')"></vxe-option> |
| | | <vxe-option value="0" :label="$t('searchOrder.allOrders')"></vxe-option> |
| | | </vxe-select> |
| | | <el-button type="primary" :icon="Search" style="margin-left: 20px">æ¥è¯¢</el-button> |
| | | <vxe-select style="margin-left: 40px"></vxe-select> |
| | | <vxe-select style="margin-left: 20px"></vxe-select> |
| | | <el-button type="primary" style="margin-left: 10px">çé</el-button> |
| | | </template> |
| | | </vxe-grid> |
| | | </div> |
| | |
| | | align: 'center',//æåå±
ä¸ |
| | | stripe:true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | id: 'ProcessCard-Detail', |
| | | id: 'ProcessCardDetail', |
| | | scrollX:{enabled: true}, |
| | | scrollY:{ enabled: true ,gt:0},//å¼å¯èææ»å¨ |
| | | showOverflow:true, |
| | |
| | | </template> |
| | | |
| | | <template #toolbar_buttons> |
| | | <vxe-select @change="changeOrderType" v-model="ProjectName"> |
| | | <vxe-option value="2" :label="$t('searchOrder.regularOrders')"></vxe-option> |
| | | <vxe-option value="-2" :label="$t('searchOrder.cancelledOrders')"></vxe-option> |
| | | <vxe-option value="0" :label="$t('searchOrder.allOrders')"></vxe-option> |
| | | </vxe-select> |
| | | <vxe-input @change="changeOrderType" v-model="ProjectName"></vxe-input> |
| | | <el-button type="primary" style="margin-left: 20px">å建</el-button> |
| | | </template> |
| | | |
| | | </vxe-grid> |
| | |
| | | <script setup> |
| | | import {reactive, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n"; |
| | | import {Folder} from "@element-plus/icons-vue"; |
| | | const { t } = useI18n() |
| | | import { |
| | | Folder, |
| | | Plus, |
| | | Setting, |
| | | Operation, |
| | | Tickets, |
| | | DocumentCopy, |
| | | Grid, |
| | | Edit, |
| | | Printer, |
| | | DocumentAdd, Minus, Menu, Checked, Upload, Suitcase, Refresh, CircleCloseFilled, Sort, Link , |
| | | } from "@element-plus/icons-vue"; |
| | | |
| | | const {t} = useI18n() |
| | | |
| | | const xGrid = ref() |
| | | const gridOptions = reactive({ |
| | | height:'100%', |
| | | height: '100%', |
| | | loading: false, |
| | | border: "full",//è¡¨æ ¼å è¾¹æ¡ |
| | | border: "full",//è¡¨æ ¼å è¾¹æ¡ |
| | | keepSource: true,//ä¿ææºæ°æ® |
| | | align: 'center',//æåå±
ä¸ |
| | | stripe:true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | stripe: true,//æé©¬çº¹ |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30, useKey: true},//é¼ æ ç§»å¨æéæ©é«äº® |
| | | id: 'ProjectDetail', |
| | | scrollX:{enabled: true}, |
| | | scrollY:{ enabled: true ,gt:0},//å¼å¯èææ»å¨ |
| | | showOverflow:true, |
| | | scrollX: {enabled: true}, |
| | | scrollY: {enabled: true, gt: 0},//å¼å¯èææ»å¨ |
| | | showOverflow: true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | |
| | | } |
| | | ] |
| | | },*/ |
| | | columns:[ |
| | | columns: [ |
| | | {title: '订åº', width: 70}, |
| | | {field:'state',width: 150,title: t('order.width'),filters:[{ data: '' }], slots: { filter: 'num2_filter' }}, |
| | | {type: 'seq',width: 150,title: t('order.height')}, |
| | | {field: 'id',width: 150, title: t('order.quantity'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'é¿ç£¨1',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'é¿ç£¨2',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'ç磨1',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'ç磨1',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.shape'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: 'æµç¨å¡å·',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.buildingNumber'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('basicData.remarks'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.perimeter'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('order.grossArea'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'state', width: 150, title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num2_filter'}}, |
| | | {type: 'seq', width: 150, title: t('order.height')}, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('order.quantity'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | {field: 'id', width: 150, title: 'é¿ç£¨1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'id', width: 150, title: 'é¿ç£¨2', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'id', width: 150, title: 'ç磨1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | {field: 'id', width: 150, title: 'ç磨1', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('order.shape'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | {field: 'id', width: 150, title: 'æµç¨å¡å·', filters: [{data: ''}], slots: {filter: 'num1_filter'}, sortable: true}, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('order.product'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('order.buildingNumber'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('basicData.remarks'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('order.perimeter'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('order.grossArea'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | |
| | | {field: 'id',width: 150, title: t('craft.glassChild'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('craft.glassAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'id',width: 150, title: t('craft.TrademarkAttribute'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('craft.glassChild'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('craft.glassAddress'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | { |
| | | field: 'id', |
| | | width: 150, |
| | | title: t('craft.TrademarkAttribute'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | sortable: true |
| | | }, |
| | | ],//è¡¨å¤´åæ° |
| | | data:null,//è¡¨æ ¼æ°æ® |
| | | data: null,//è¡¨æ ¼æ°æ® |
| | | toolbarConfig: { |
| | | buttons: [], |
| | | slots:{ |
| | | slots: { |
| | | buttons: "toolbar" |
| | | }, |
| | | }, |
| | |
| | | let emit = defineEmits([ |
| | | 'changeDialog' |
| | | ]) |
| | | const handleCommand = async (command)=>{ |
| | | await emit('changeDialog',command) |
| | | const handleCommand = async (command) => { |
| | | await emit('changeDialog', command) |
| | | } |
| | | |
| | | |
| | | </script> |
| | | |
| | |
| | | <template #num2_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" @change="changeFilterEvent($event, option, $panel)"> |
| | | <vxe-select v-model="option.data" :placeholder="$t('processCard.pleaseSelect')" |
| | | @change="changeFilterEvent($event, option, $panel)"> |
| | | <vxe-option value="0" :label="$t('basicData.unchecked')"></vxe-option> |
| | | <vxe-option value="1" :label="$t('basicData.selected')"></vxe-option> |
| | | </vxe-select> |
| | |
| | | </template> |
| | | |
| | | <template #toolbar> |
| | | <el-dropdown @command="handleCommand" > |
| | | <el-button type="primary" :icon="Folder"> |
| | | å·¥ç¨èå<el-icon class="el-icon--right"></el-icon> |
| | | <div id="title"> |
| | | <el-button id="checkinventory" type="primary">æ¥è¯¢åºå</el-button> |
| | | <el-button id="checkremnant" type="primary">æ¥è¯¢ä½æ</el-button> |
| | | <el-button id="selectml" type="primary">设置磨é</el-button> |
| | | <el-button id="selectxb" type="primary">设置修边</el-button> |
| | | <el-button id="safe" type="primary">ä¿å</el-button> |
| | | <el-button id="optimize" type="primary">ä¼å</el-button> |
| | | </div> |
| | | <!--å·¥ç¨æä»¶èå--> |
| | | <el-dropdown @command="handleCommand"> |
| | | <el-button type="primary" :icon="Folder"> |
| | | å·¥ç¨æä»¶ |
| | | </el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item :command="1">å建工ç¨</el-dropdown-item> |
| | | <el-dropdown-item :command="2">å·¥ç¨ç®¡ç</el-dropdown-item> |
| | | <el-dropdown-item :command="3">模æè®¡ç®</el-dropdown-item> |
| | | <!-- <el-dropdown-item command="4">æä»¶å¯¼åº</el-dropdown-item> |
| | | <el-dropdown-item command="5">æä»¶å¯¼å
¥</el-dropdown-item>--> |
| | | <el-dropdown-item :command="1" :icon="Plus">å建工ç¨</el-dropdown-item> |
| | | <el-dropdown-item :command="2" :icon="Setting">å·¥ç¨ç®¡ç</el-dropdown-item> |
| | | <el-dropdown-item :command="3" :icon="Operation">模æè®¡ç®</el-dropdown-item> |
| | | <!-- <el-dropdown-item command="4">æä»¶å¯¼åº</el-dropdown-item> |
| | | <el-dropdown-item command="5">æä»¶å¯¼å
¥</el-dropdown-item>--> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <!--æå°èå--> |
| | | <el-dropdown @command="handleCommand"> |
| | | <el-button class="buttons" type="primary" :icon="Printer"> |
| | | æå° |
| | | </el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item :command="null" :icon="Printer">æå°ä¼åçå¾</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Tickets">æå°ä¼åæ¥å</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="DocumentCopy">åå¹¶æå°</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Grid">缩ç¥å¾</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <!--è°æ´--> |
| | | <el-dropdown @command="handleCommand"> |
| | | <el-button class="buttons" type="primary" :icon="Operation"> |
| | | è°æ´ |
| | | </el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item :command="null" :icon="Edit">å
¨é¨éæ</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="DocumentAdd">æ°å¢çé¢</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Plus">å¢å å 工次æ°</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Minus">å é¤çé¢</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Menu">éåå½åçé¢</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Grid">éåæä»¥çé¢</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Checked">ä¿åä¿®æ¹</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Upload">导åºå©ä½å°ç</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <!--æ°æ§--> |
| | | <el-dropdown @command="handleCommand"> |
| | | <el-button class="buttons" type="primary" :icon="Suitcase"> |
| | | æ°æ§ |
| | | </el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item :command="null" :icon="Refresh">å·æ°åè·¯</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Link">æªæè¿ç»çº¿</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="CircleCloseFilled">å é¤åè·¯</el-dropdown-item> |
| | | <el-dropdown-item :command="null" :icon="Sort">å½ååè·¯åå</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <!--设置--> |
| | | <el-button class="buttons" type="primary" :icon="Setting"> |
| | | 设置 |
| | | </el-button> |
| | | <!--æ¥å--> |
| | | <el-button class="buttons" type="primary" :icon="Tickets"> |
| | | æ¥å |
| | | </el-button> |
| | | </template> |
| | | |
| | | </vxe-grid> |
| | | </div> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | #title { |
| | | position: absolute; |
| | | right: 10px; |
| | | } |
| | | |
| | | .buttons { |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | </style> |