| | |
| | | let dictKeys = []; |
| | | let slotColumnList = []; |
| | | formItemList.forEach((formItem) => { |
| | | // console.log('formItem',formItem) |
| | | console.log('formItem',formItem) |
| | | formItem = this.resetFormConfig(formItem); |
| | | if (formItem.secType === "codeattrsec") { |
| | | this.attrList.push(formItem); |
| | |
| | | let that = this; |
| | | items.forEach((item) => { |
| | | let formItem = this.resetFormConfig(item); |
| | | |
| | | if (formItem.field == "lcstatus") { |
| | | formItem.field = formItem.field + "_text"; |
| | | formItem.readOnly = true; |
| | |
| | | <div> |
| | | </div> |
| | | <el-row style="width: 100%;margin-bottom: 10px"> |
| | | <div style="margin-bottom: 10px" > |
| | | <el-button v-for="(item, index) in masterVrBtnList" |
| | | v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" |
| | | :key="index" plain size="small" |
| | | type="primary" |
| | | @click="handleBtnClick(item)">{{ |
| | | item.name |
| | | }} |
| | | </el-button> |
| | | <div style="margin-bottom: 10px"> |
| | | <el-button v-for="(item, index) in masterVrBtnList" |
| | | v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)" |
| | | :key="index" plain size="small" |
| | | type="primary" |
| | | @click="handleBtnClick(item)">{{ |
| | | item.name |
| | | }} |
| | | </el-button> |
| | | <span v-if="tableHeadFindData.length > 0"> |
| | | <el-select slot="prepend" v-model="keyWordFind" placeholder="è¯·éæ©" size="small"> |
| | | <el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label" |
| | |
| | | </el-select></span> |
| | | </div> |
| | | <div class="custom-table"> |
| | | <el-table class="cus-table" ref="dataTable" v-loading="isLoading" :data="tableData" |
| | | :height="tableHeight" border |
| | | <el-table ref="dataTable" v-loading="isLoading" :data="tableData" :height="tableHeight" |
| | | border class="cus-table" |
| | | @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick" |
| | | @select-all="handleSelectionAll" @selection-change="handleSelectionChange" |
| | | @sort-change="sortChange"> |
| | |
| | | <el-table-column v-if="tableData.length != 0" fixed label="åºå·" type="index" width="55"> |
| | | </el-table-column> |
| | | <!-- çå½å¨æ--> |
| | | <el-table-column v-for="(item,index) in lcstatusArray" key="index" v-if=" lcstatusArray.length !== 0 && !item.hidden" label="çå½å¨æå¼" prop="lcstatus" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <el-table-column v-for="(item,index) in lcstatusArray" v-if=" lcstatusArray.length !== 0 && !item.hidden" |
| | | key="index" :show-overflow-tooltip="true" :sortable="item.sortable" |
| | | :width="item.width" align="center" label="çå½å¨æå¼" |
| | | prop="lcstatus"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.lcstatus_text }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- ç¼å·--> |
| | | <el-table-column v-for="(item, index) in CodeArray" key="index" v-if="CodeArray.length !== 0 && !item.hidden" :label="item.label" :prop="item.prop" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden" |
| | | key="index" :label="item.label" :prop="item.prop" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-link type="primary" @click="CodeLinkHandler(scope.row)"> |
| | | {{ scope.row[item.prop] }} |
| | | </el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0" |
| | | <el-table-column v-for="item in this.tableHeadFindData" |
| | | v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0" |
| | | :key="item.id" |
| | | :formatter="item.formatter" |
| | | :label="item.label" :prop="item.prop" |
| | |
| | | align="center"> |
| | | </el-table-column> |
| | | <!-- åç
§æ°æ®--> |
| | | <el-table-column v-for="(item,index) in referArray" :key="index" v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden" :label="item.title" prop="jiliangdw" |
| | | :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width" |
| | | align="center"> |
| | | <el-table-column v-for="(item,index) in referArray" v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden" |
| | | :key="index" |
| | | :label="item.title" :show-overflow-tooltip="true" |
| | | :sortable="item.sortable" :width="item.width" align="center" |
| | | prop="jiliangdw"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.jiliangdwname }}</span> |
| | | </template> |
| | |
| | | :visible.sync="editvisible" |
| | | type="edit" @submit="EditSumbit"></FormTemplateDialog> |
| | | <!-- æ¹éç¼è¾--> |
| | | <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> |
| | | <!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>--> |
| | | <!-- æ°æ®è¯¦æ
--> |
| | | <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid" |
| | | :rowOid="this.LinkObject.oid" :templateOid="templateOid" |
| | | :rowOid="this.LinkObject.oid" :templateOid="templateOid" |
| | | :title="'æ°æ®è¯¦æ
'" |
| | | :visible.sync="LinkVisible" |
| | | type="detail"></FormTemplateDialog> |
| | |
| | | :visible.sync="dialogPush"></MasterTransfer> |
| | | <!-- 导å
¥--> |
| | | <BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend" |
| | | :visible.sync="batchImportData.visible" :tableHeadData="tableHeadFindData" :selectRow="selectRow"> |
| | | :selectRow="selectRow" :tableHeadData="tableHeadFindData" |
| | | :visible.sync="batchImportData.visible"> |
| | | </BatchImport> |
| | | <!-- ç¸ä¼¼é¡¹--> |
| | | <ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid" |
| | |
| | | Treedata: { |
| | | type: Array |
| | | }, |
| | | nodeClickList:{ |
| | | type:Array, |
| | | default:[] |
| | | nodeClickList: { |
| | | type: Array, |
| | | default: [] |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | //æ¹éç¼è¾å¯¹è¯æ¡ |
| | | bulkeditvisible:false, |
| | | bulkeditvisible: false, |
| | | LinkVisible: false, |
| | | LinkObject: {}, // ç¼ç æ°æ® |
| | | LinkList: [], |
| | | isCodeArrayPushed: false, // ç¼ç æ°ç»æ·»å æ è¯åé |
| | | CodeArray: [], |
| | | //çå½å¨ææ°ç» |
| | | lcstatusArray:[], |
| | | lcstatusArray: [], |
| | | //åç
§æ°æ®æ°ç» |
| | | referArray:[], |
| | | islcstatusPushed:false, |
| | | isReferPushed:false, |
| | | referArray: [], |
| | | islcstatusPushed: false, |
| | | isReferPushed: false, |
| | | // ç¶ææç´¢ |
| | | statusSelect: "all", |
| | | // å
³é®åæ¥è¯¢ |
| | |
| | | label: "name", |
| | | }, |
| | | tableHeadFindDatas: [], |
| | | applyvisible:false, |
| | | amendvisible:false, |
| | | applyvisible: false, |
| | | amendvisible: false, |
| | | addvisible: false, |
| | | editvisible: false, |
| | | findvisible: false, |
| | |
| | | height: 110 |
| | | }, |
| | | result: '', |
| | | elapsedTime:'', |
| | | elapsedTime: '', |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | // console.log('lcstatusArray', this.lcstatusArray); |
| | | this.islcstatusPushed = true; |
| | | } |
| | | if(!this.isReferPushed){ |
| | | if (!this.isReferPushed) { |
| | | if (newval.find(item => Object.keys(item.referConfig).length > 0)) { |
| | | this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0)); |
| | | }else { |
| | | } else { |
| | | this.referArray.push([]) |
| | | } |
| | | } |
| | | this.isReferPushed=true; |
| | | console.log('new',this.referArray) |
| | | console.log('ss',newval.find(item => Object.keys(item.referConfig).length > 0)) |
| | | this.isReferPushed = true; |
| | | console.log('new', this.referArray) |
| | | console.log('ss', newval.find(item => Object.keys(item.referConfig).length > 0)) |
| | | this.WupinFindValue = '' |
| | | }, |
| | | }, |
| | |
| | | }, |
| | | tableHeadBtnData: { |
| | | handler(newval) { |
| | | this.masterVrBtnList = newval |
| | | this.masterVrBtnList = newval |
| | | }, |
| | | deep: true |
| | | }, |
| | |
| | | }); |
| | | }, |
| | | //æ åç³è¯· |
| | | codeApplyHandler(){ |
| | | codeApplyHandler() { |
| | | this.$nextTick(() => { |
| | | this.applyvisible = true; |
| | | }); |
| | | }, |
| | | applySumbit(val){ |
| | | applySumbit(val) { |
| | | // console.log('val',val) |
| | | if(func.notEmpty(val.ts)) { |
| | | if (func.notEmpty(val.ts)) { |
| | | val.ts = func.formattedDateTime(val.ts); |
| | | //console.log(val.ts); |
| | | } |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | amendSumbit(val){ |
| | | amendSumbit(val) { |
| | | applySaveCode(val).then(res => { |
| | | this.$nextTick(() => { |
| | | this.amendvisible = false; |
| | |
| | | |
| | | }, |
| | | //æ å修订 |
| | | codeAMENDHandler(){ |
| | | codeAMENDHandler() { |
| | | if (this.selectRow.length !== 1) { |
| | | this.$message.warning("è¯·éæ©ä¸æ¡æ°æ®"); |
| | | } else if (this.selectRow[0].lcstatus !== "Editing") { |
| | | this.$message.warning("ç¼ç ç¶æä¸æ¯âç¼è¾ä¸âï¼ä¸å¯ç¼è¾"); |
| | | } else { |
| | | this.amendvisible = true; |
| | | this.rowOid = this.selectRow[0].oid; |
| | | } |
| | | }, |
| | | //æ¹éç¼è¾ |
| | | bulkEditHandler(type){ |
| | | bulkEditHandler(type) { |
| | | console.log(this.nodeClickList) |
| | | if(this.nodeClickList.children.length >= 1){ |
| | | if (this.nodeClickList.children.length >= 1) { |
| | | this.$message.warning('å½åéæ©çåç±»ä¸æ¯å¶åèç¹ï¼ä¸å
许æ¹éç¼è¾ï¼') |
| | | return; |
| | | } |
| | | if(this.selectRow.length <= 0){ |
| | | if (this.selectRow.length <= 0) { |
| | | this.$message.warning('è¯·éæ©è³å°ä¸æ¡æ°æ®ï¼') |
| | | return; |
| | | } |
| | |
| | | this.$message.warning('éæ©çæ°æ®ä¸æç¼ç ç¶æä¸æ¯âç¼è¾ä¸âï¼ä¸å¯ç¼è¾ï¼'); |
| | | } |
| | | }, |
| | | addSaveHandler(){ |
| | | addSaveHandler() { |
| | | this.$nextTick(() => { |
| | | this.addvisible = true; |
| | | }); |
| | |
| | | //å¢å ä¿å |
| | | AddSumbit(val) { |
| | | // console.log('val',val) |
| | | if(func.notEmpty(val.ts)) { |
| | | if (func.notEmpty(val.ts)) { |
| | | val.ts = func.formattedDateTime(val.ts); |
| | | //console.log(val.ts); |
| | | } |
| | |
| | | <style lang="scss" scoped> |
| | | //åºå®åé«åº¦ |
| | | /deep/ .el-table__fixed { |
| | | height: calc(100vh - 370px)!important; |
| | | height: calc(100vh - 370px) !important; |
| | | } |
| | | |
| | | // æ»å¨æ¡æ ·å¼ä¿®æ¹ |
| | | // æ»å¨æ¡ç宽度 |
| | | /deep/ .el-table__body-wrapper::-webkit-scrollbar { |
| | |
| | | width: 10px; |
| | | |
| | | } |
| | | |
| | | // æ»å¨æ¡çæ»å |
| | | /deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb { |
| | | background-color: #ececec; |
| | |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .el-table__body-wrapper{ |
| | | .el-table__body-wrapper { |
| | | height: calc(100% - 44px) !important; |
| | | } |
| | | </style> |
| | |
| | | <basic-container> |
| | | <v-chart id="chart" :auto-resize="true" :options="chartOptions"></v-chart> |
| | | </basic-container> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import 'echarts' |
| | | import 'echarts/lib/chart/line' |
| | | import 'echarts/lib/chart/pie' |
| | | import 'echarts/lib/chart/bar' |
| | | import 'echarts/lib/component/tooltip' |
| | | import 'echarts/lib/component/title' |
| | | import 'echarts/lib/component/legend' |
| | | |
| | | var data = [ |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 0, 122, 100, 80], |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | ]; |
| | | |
| | | // æ¾å°æ¯ä¸é¡¹æ°æ®ä¸çæå¤§å¼å¹¶ä¿åå°æ°ç» |
| | | var maxValues = data[0].map(function (_, i) { |
| | | return Math.max.apply(null, data.map(function (item) { |
| | | return item[i]; |
| | | })); |
| | | }); |
| | | |
| | | var colors = ['#91CC75', '#5470C6']; |
| | | // çææ±ç¶å¾ç series æ°æ® |
| | | var seriesData = []; |
| | | for (var i = 0; i < data.length; i++) { |
| | | var curSeriesData = []; |
| | | // è®¡ç®æ°æ®ä¸çæ¯ç»æ°æ®çæå¤§å¼ |
| | | for (var j = 0; j < data[i].length; j++) { |
| | | var borderRadius = [0, 0, 0, 0]; // é»è®¤ä¸è®¾ç½®åè§ |
| | | if (data[i][j] === maxValues[j]) { // 妿å½åæ±åçå¼çäºå¯¹åºåçæå¤§å¼ï¼è®¾ç½®åè§ |
| | | borderRadius = [50, 50, 0, 0]; // 设置å个è§é½ä¸ºåè§ |
| | | export default { |
| | | name: "ColumnarChart", |
| | | props:{ |
| | | columnarData:{ |
| | | type:Array, |
| | | default:[] |
| | | }, |
| | | chartName:{ |
| | | type:String, |
| | | default: "" |
| | | } |
| | | curSeriesData.push({ |
| | | value: data[i][j], |
| | | itemStyle: { |
| | | normal: { |
| | | barBorderRadius: borderRadius, // 设置åè§ |
| | | color: colors[i], |
| | | show: function (params) { |
| | | // æ ¹æ®æ°æ®å¼ç大尿¥å¤ææ¯å¦æ¾ç¤º label |
| | | return params.value > 30; |
| | | }, |
| | | watch:{ |
| | | columnarData:{ |
| | | immediate:true, |
| | | handler(newval,oldval){ |
| | | if(newval && newval.length > 0){ |
| | | const minValues = newval[0].map(function (_, i) { |
| | | return Math.min.apply( |
| | | null, |
| | | newval.map(function (item) { |
| | | return item[i]; |
| | | }) |
| | | ); |
| | | }); |
| | | |
| | | let colors = ["#91CC75", "#5470C6"]; |
| | | |
| | | const seriesData = []; |
| | | for (let i = 0; i < newval.length; i++) { |
| | | let curSeriesData = []; |
| | | for (let j = 0; j < newval[i].length; j++) { |
| | | let borderRadius = [0, 0, 0, 0]; |
| | | if (newval[i][j] === minValues[j]) { |
| | | borderRadius = [50, 50, 0, 0]; |
| | | } |
| | | curSeriesData.push({ |
| | | value: newval[i][j], |
| | | itemStyle: { |
| | | normal: { |
| | | barBorderRadius: borderRadius, // 设置åè§ |
| | | color: colors[i], |
| | | } |
| | | }, |
| | | }); |
| | | } |
| | | let seriesName = (i === 0 ? "æ»é" : "æ°å¢") |
| | | seriesData.push({ |
| | | name: seriesName, |
| | | type: "bar", |
| | | stack: "æ»é", |
| | | data: curSeriesData, |
| | | label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | emphasis: { |
| | | focus: "series", |
| | | }, |
| | | }); |
| | | this.chartOptions.series=seriesData |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | var seriesName = ''; |
| | | if (i === 0) { |
| | | seriesName = 'æ»é'; |
| | | } else if (i === 1) { |
| | | seriesName = 'æ°å¢'; |
| | | } |
| | | seriesData.push({ |
| | | name: seriesName, |
| | | type: 'bar', |
| | | stack: 'æ»é', |
| | | data: curSeriesData, |
| | | label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | itemStyle: { |
| | | color: colors[i] // 设置æ±åçé¢è² |
| | | }, |
| | | emphasis: { |
| | | focus: 'series' |
| | | chartName:{ |
| | | handler(newval,oldval){ |
| | | if(newval){ |
| | | console.log(newval) |
| | | this.chartOptions.title.text = newval + "æ°æ®ç»è®¡" |
| | | } |
| | | }, |
| | | immediate:true, |
| | | deep:true |
| | | } |
| | | }); |
| | | } |
| | | |
| | | export default { |
| | | name: "ColumnarChart", |
| | | }, |
| | | data() { |
| | | return { |
| | | chartOptions: { |
| | | color:["#91CC75", "#5470C6"], |
| | | title: { |
| | | text: '人åä¸»æ°æ®ç»è®¡' |
| | | text: "", |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | left: "3%", |
| | | right: "4%", |
| | | bottom: "3%", |
| | | containLabel: true, |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | type: "shadow", |
| | | }, |
| | | }, |
| | | legend: { |
| | | data: ['æ»é', 'æ°å¢'], |
| | | left: 'center' |
| | | data: ["æ»é", "æ°å¢"], |
| | | left: "center", |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['䏿', 'äºæ', '䏿', 'åæ', 'äºæ', 'å
æ', '䏿', 'å
«æ', '乿', 'åæ', 'å䏿', 'åäºæ'] |
| | | type: "category", |
| | | data: [ |
| | | "䏿", |
| | | "äºæ", |
| | | "䏿", |
| | | "åæ", |
| | | "äºæ", |
| | | "å
æ", |
| | | "䏿", |
| | | "å
«æ", |
| | | "乿", |
| | | "åæ", |
| | | "å䏿", |
| | | "åäºæ", |
| | | ], |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | type: "value", |
| | | }, |
| | | series: seriesData, |
| | | } |
| | | } |
| | | } |
| | | } |
| | | series: [], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | #chart { |
| | | width: 1280px; |
| | | height: 800px; |
| | | width: 100%; |
| | | height: 560px; |
| | | } |
| | | </style> |
| | |
| | | <script> |
| | | import 'echarts' |
| | | import 'echarts/lib/chart/line' |
| | | import 'echarts/lib/chart/pie' |
| | | import 'echarts/lib/chart/bar' |
| | | import 'echarts/lib/component/tooltip' |
| | | import 'echarts/lib/component/title' |
| | | import 'echarts/lib/component/legend' |
| | | |
| | | export default { |
| | | name: "lineChart", |
| | | props: { |
| | | lineData: { |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | chartName: { |
| | | type: String, |
| | | default: "" |
| | | } |
| | | }, |
| | | watch: { |
| | | lineData: { |
| | | immediate: true, |
| | | handler(newval, oldval) { |
| | | if (newval) { |
| | | const series = newval.map((data, index) => ({ |
| | | name: index === 0 ? "æ»é" : "æ°å¢", |
| | | type: "line", |
| | | smooth: true, |
| | | stack: "Total", |
| | | label: { |
| | | show: true, |
| | | position: "top" |
| | | }, |
| | | data: data.map(value => ({value})) |
| | | })); |
| | | |
| | | this.chartOptions.series = series; |
| | | } |
| | | } |
| | | }, |
| | | chartName:{ |
| | | handler(newval,oldval){ |
| | | if(newval){ |
| | | this.chartOptions.title.text = newval + "æ°æ®ç»è®¡" |
| | | } |
| | | }, |
| | | immediate:true, |
| | | deep:true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | chartOptions: { |
| | | color:['#2eadd6 ','#FFA500 '], |
| | | color: ['#2eadd6', '#FFA500'], |
| | | title: { |
| | | text: 'ç©åä¸»æ°æ®ç»è®¡' |
| | | text: '' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | |
| | | data: ['æ»é', 'æ°å¢'] |
| | | }, |
| | | xAxis: { |
| | | boundaryGap: true, // æ§å¶åæ 轴两侧çç½ |
| | | boundaryGap: true, |
| | | type: 'category', |
| | | data: ['1æ', '2æ', '3æ', '4æ', '5æ', '6æ', '7æ', '8æ', '9æ', '10æ', '11æ', '12æ'] |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'æ»é', |
| | | type: 'line', |
| | | smooth: true, |
| | | stack: 'Total', |
| | | label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | data: [5000, 2000, 3600, 1000, 1000, 2000, 500, 2000, 500, 2000, 500, 2000] |
| | | }, |
| | | { |
| | | name: 'æ°å¢', |
| | | type: 'line', |
| | | smooth: true, |
| | | stack: 'Total', |
| | | label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | data: [1510, 1010, 2610, 2010, 3010, 1010, 1510, 3010, 1010, 1510, 3010, 2000] |
| | | } |
| | | ] |
| | | }, |
| | | series: [] |
| | | } |
| | | }; |
| | | }, |
| | | mounted() { |
| | | }, |
| | | } |
| | | created() { |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | #chart { |
| | | width: 1280px; |
| | | width: 100%; |
| | | height: 400px; |
| | | } |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <basic-container> |
| | | <v-chart id="chart" :auto-resize="true" :options="chartOptions"></v-chart> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import 'echarts' |
| | | import 'echarts/lib/chart/line' |
| | | import 'echarts/lib/chart/pie' |
| | | import 'echarts/lib/chart/bar' |
| | | import 'echarts/lib/component/tooltip' |
| | | import 'echarts/lib/component/title' |
| | | import 'echarts/lib/component/legend' |
| | | |
| | | export default { |
| | | name: "mixCart", |
| | | props: { |
| | | mixData: { |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | chartName: { |
| | | type: String, |
| | | default: "" |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | chartOptions: { |
| | | title: { |
| | | text: "", |
| | | }, |
| | | grid: { |
| | | left: "3%", |
| | | right: "4%", |
| | | bottom: "3%", |
| | | containLabel: true, |
| | | }, |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: "shadow", |
| | | }, |
| | | }, |
| | | legend: { |
| | | data: ["æ»é", "æ°å¢"], |
| | | left: "center", |
| | | }, |
| | | xAxis: { |
| | | type: "category", |
| | | data: [ |
| | | "䏿", |
| | | "äºæ", |
| | | "䏿", |
| | | "åæ", |
| | | "äºæ", |
| | | "å
æ", |
| | | "䏿", |
| | | "å
«æ", |
| | | "乿", |
| | | "åæ", |
| | | "å䏿", |
| | | "åäºæ", |
| | | ], |
| | | }, |
| | | yAxis: { |
| | | type: "value", |
| | | }, |
| | | series: [], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | mixData: { |
| | | immediate: true, |
| | | handler(newval, oldval) { |
| | | if (newval) { |
| | | const colors = ["#8fef5b", "#db3c3c"]; |
| | | |
| | | const seriesData = newval.map((data, index) => ({ |
| | | name: index === 0 ? "æ»é" : "æ°å¢", |
| | | type: index === 0 ? "bar" : "line", |
| | | stack: index === 0 ? "æ»é" : null, |
| | | data: data.map(value => ({value})), |
| | | label: { |
| | | show: true, |
| | | position: "top" |
| | | }, |
| | | itemStyle: { |
| | | color: colors[index] |
| | | }, |
| | | emphasis: { |
| | | focus: "series" |
| | | } |
| | | })); |
| | | |
| | | this.chartOptions.series = seriesData; |
| | | } |
| | | }, |
| | | }, |
| | | chartName:{ |
| | | handler(newval,oldval){ |
| | | if(newval){ |
| | | this.chartOptions.title.text = newval + "æ°æ®ç»è®¡" |
| | | } |
| | | }, |
| | | immediate:true, |
| | | deep:true |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | #chart { |
| | | width: 100%; |
| | | height: 560px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <basic-container style="width: 100%"> |
| | | <v-chart :options="chartOptions" :auto-resize="true" id="chart"></v-chart> |
| | | </basic-container> |
| | | </template> |
| | |
| | | import 'echarts/lib/component/legend' |
| | | export default { |
| | | name: "pieChart", |
| | | props:{ |
| | | pieData:{ |
| | | type:Array, |
| | | default:[] |
| | | }, |
| | | chartName:{ |
| | | type:String, |
| | | default: "" |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | chartOptions: { |
| | |
| | | tooltip: { |
| | | trigger: 'item', |
| | | formatter: function (params) { |
| | | var result = ''; |
| | | let result = ''; |
| | | if (params.componentType === 'series') { |
| | | result += params.name + '<br/>'; |
| | | result += 'æ°å¢ï¼' + params.data.newValue + '<br/>'; |
| | |
| | | itemStyle: { |
| | | color: function(params) { |
| | | // æ ¹æ®å
·ä½éæ±è®¾ç½®é¢è² |
| | | var colorList = ['#5470C6', '#91CC75', '#fac858', '#EE6666', '#3BA272', '#FC8452', '#9A60B4', '#e34d4d', '#b3e9b9', '#eaaaed', '#1bc6e4', '#c6b3e9']; |
| | | const colorList = ['#5470C6', '#91CC75', '#fac858', '#EE6666', '#3BA272', '#FC8452', '#9A60B4', '#e34d4d', '#b3e9b9', '#eaaaed', '#1bc6e4', '#c6b3e9']; |
| | | return colorList[params.dataIndex % colorList.length]; |
| | | } |
| | | }, |
| | |
| | | |
| | | <style scoped lang="scss"> |
| | | #chart { |
| | | width: 800px; |
| | | height: 600px; |
| | | width: 90%; |
| | | height: 530px; |
| | | } |
| | | |
| | | </style> |
| | |
| | | <el-dialog |
| | | :visible.sync="addVisible" |
| | | append-to-body |
| | | class="avue-dialog avue-dialog--top" |
| | | title="æ°å¢æ°æ®ç»è®¡åæ" |
| | | top="-50px" |
| | | > |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | style="width: 100%" |
| | | @selection-change="selectChange" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="55"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="ä¸»æ°æ®åºå" |
| | | prop="menuName"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="ç±»å" |
| | | prop="codeType"> |
| | | <template slot-scope="{ row }"> |
| | | <el-select v-model="row.codeType" placeholder="è¯·éæ©å¾è¡¨ç±»å"> |
| | | <el-option label="æçº¿å¾" value="0"></el-option> |
| | | <el-option label="饼ç¶å¾" value="1"></el-option> |
| | | <el-option label="æ±ç¶å¾" value="2"></el-option> |
| | | <el-option label="æ±ç¶æçº¿å¾" value="3"></el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="escHandler">å æ¶</el-button> |
| | | <el-button type="primary" @click="addSaveHandler">ä¿å</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- echartsç»ä»¶--> |
| | | <div> |
| | | <lineChart></lineChart> |
| | | <pieChart></pieChart> |
| | | <ColumnarChart></ColumnarChart> |
| | | <lineChart v-for="(item,index) in lineList" :key="index" :chartName="item.menuName" |
| | | :lineData="item.menuData"></lineChart> |
| | | <!-- <pieChart :pieData="pieData" :chartName="chartName"></pieChart>--> |
| | | <ColumnarChart v-for="(item,index) in columnarList" :key="index" :chartName="item.menuName" |
| | | :columnarData="item.menuData"></ColumnarChart> |
| | | <mixCart v-for="(item,index) in mixList" :key="index" :chartName="item.menuName" |
| | | :mixData="item.menuData"></mixCart> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import lineChart from "../../components/StatisticsComponent/lineChart" |
| | | import pieChart from "../../components/StatisticsComponent/pieChart" |
| | | import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart" |
| | | import mixCart from "../../components/StatisticsComponent/mixCart" |
| | | |
| | | export default { |
| | | components: { |
| | | lineChart, |
| | | pieChart, |
| | | ColumnarChart |
| | | ColumnarChart, |
| | | mixCart |
| | | }, |
| | | name: "statisticPage", |
| | | data() { |
| | | return { |
| | | addVisible: false, |
| | | chartName: "", |
| | | lineList: [], |
| | | pieList: [], |
| | | columnarList: [], |
| | | mixList: [], |
| | | selectData: [], |
| | | tableData: [ |
| | | { |
| | | menuName: "å·¥èºæä»¶", |
| | | codeType: "1", |
| | | menuData: [ |
| | | [222, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "æµè¯sc", |
| | | codeType: "2", |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "产ååå·", |
| | | codeType: "0", |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "åºå®èµäº§", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "æèªä¸»æ°æ®", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "Part", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "人åä¸»æ°æ®", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "人å", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "æ å", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "ç©åä¸»æ°æ®", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | }, |
| | | { |
| | | menuName: "åå·", |
| | | codeType: null, |
| | | menuData: [ |
| | | [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], |
| | | [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | methods: { |
| | | //æ°å¢ |
| | | addHandler() { |
| | | this.addVisible = true; |
| | | } |
| | | }, |
| | | //åæ¶ |
| | | escHandler() { |
| | | this.addVisible = false; |
| | | }, |
| | | //ä¿å |
| | | addSaveHandler() { |
| | | debugger |
| | | if (this.selectData.length <= 0) { |
| | | this.$message.warning('请è³å°éæ©ä¸æ¡æ°æ®ï¼'); |
| | | return; |
| | | } |
| | | |
| | | const typeList = { |
| | | "0": "lineList", |
| | | "1": "pieList", |
| | | "2": "columnarList", |
| | | "3": "mixList" |
| | | }; |
| | | |
| | | let hasValidData = false; // æ·»å ä¸ä¸ªæ å¿æ¥è®°å½æ¯å¦æææçéæ©æ°æ® |
| | | let codeStatus = this.selectData.every(key => key.codeType) |
| | | if (!codeStatus) { |
| | | this.$message.warning("è¯·æ£æ¥å·²å¾éæ°æ®ç±»åæ¯å¦ä¸ºç©ºï¼"); |
| | | return; |
| | | } |
| | | this.selectData.forEach(item => { |
| | | const dataKey = typeList[item.codeType]; |
| | | if (dataKey) { |
| | | this[dataKey].push(item); |
| | | hasValidData = true; // æ è®°ææææ°æ®è¢«æ·»å |
| | | } |
| | | }); |
| | | |
| | | if (hasValidData) { |
| | | this.addVisible = false; |
| | | } |
| | | }, |
| | | //è¡¨æ ¼å¤é |
| | | selectChange(selection, row) { |
| | | // console.log(selection, row) |
| | | this.selectData = selection; |
| | | }, |
| | | } |
| | | } |
| | | </script> |