| | |
| | | <div class="layout-container"> |
| | | <a :href="exportHref" ref="export"></a> |
| | | <!--å¼å¯æå è½½2020.12.06 --> |
| | | <vol-box |
| | | :on-model-close="closeCustomModel" |
| | | v-model="viewModel" |
| | | :height="520" |
| | | :width="500" |
| | | :padding="0" |
| | | :lazy="true" |
| | | title="设置" |
| | | > |
| | | <vol-box :on-model-close="closeCustomModel" v-model="viewModel" :height="520" :width="500" :padding="0" :lazy="true" |
| | | title="设置"> |
| | | <template #content> |
| | | <custom-column :view-columns="viewColumns"></custom-column> |
| | | </template> |
| | | <template #footer> |
| | | <div style="text-align: center"> |
| | | <el-button type="default" size="small" @click="closeCustomModel" |
| | | ><i class="el-icon-close"></i>åæ¶</el-button |
| | | > |
| | | <el-button type="success" size="small" @click="initViewColumns(true)" |
| | | ><i class="el-icon-refresh"></i>éç½®</el-button |
| | | > |
| | | <el-button type="primary" size="small" @click="saveColumnConfig" |
| | | ><i class="el-icon-check"></i>ç¡®å®</el-button |
| | | > |
| | | <el-button type="default" size="small" @click="closeCustomModel"><i class="el-icon-close"></i>åæ¶</el-button> |
| | | <el-button type="success" size="small" @click="initViewColumns(true)"><i |
| | | class="el-icon-refresh"></i>éç½®</el-button> |
| | | <el-button type="primary" size="small" @click="saveColumnConfig"><i class="el-icon-check"></i>ç¡®å®</el-button> |
| | | </div> |
| | | </template> |
| | | </vol-box> |
| | |
| | | <!--2020.10.31æ·»å 导å
¥åçæ¹æ³--> |
| | | <!--å¼å¯æå è½½2020.12.06 --> |
| | | <!-- 2022.01.08å¢å æç»è¡¨å¯¼å
¥å¤æ --> |
| | | <vol-box |
| | | v-if="upload.url" |
| | | v-model="upload.excel" |
| | | :height="350" |
| | | :width="600" |
| | | :lazy="true" |
| | | :title="(boxModel ? detailOptions.cnName : table.cnName) + '-导å
¥'" |
| | | > |
| | | <UploadExcel |
| | | ref="upload_excel" |
| | | @importExcelAfter="importExcelAfter" |
| | | :importExcelBefore="importExcelBefore" |
| | | :url="upload.url" |
| | | :template="upload.template" |
| | | ></UploadExcel> |
| | | <vol-box v-if="upload.url" v-model="upload.excel" :height="350" :width="600" :lazy="true" |
| | | :title="(boxModel ? detailOptions.cnName : table.cnName) + '-导å
¥'"> |
| | | <UploadExcel ref="upload_excel" @importExcelAfter="importExcelAfter" :importExcelBefore="importExcelBefore" |
| | | :url="upload.url" :template="upload.template"></UploadExcel> |
| | | </vol-box> |
| | | <!--头é¨èªå®ä¹ç»ä»¶--> |
| | | <component |
| | | :is="dynamicComponent.gridHeader" |
| | | ref="gridHeader" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <component :is="dynamicComponent.gridHeader" ref="gridHeader" @parentCall="parentCall"></component> |
| | | <!--主ç颿¥è¯¢ä¸table表åå¸å±--> |
| | | <div class="view-container"> |
| | | <!-- 2020.09.11å¢å åºå®æ¥è¯¢è¡¨å --> |
| | |
| | | <div class="grid-search"> |
| | | <div :class="[fiexdSearchForm ? 'fiexd-search-box' : 'search-box']" v-show="searchBoxShow"> |
| | | <!-- 2020.09.13å¢å formFiledsæ¼åé误å
¼å®¹å¤ç --> |
| | | <vol-form |
| | | ref="searchForm" |
| | | :load-key="false" |
| | | style="padding: 0 15px" |
| | | :label-width="labelWidth" |
| | | :formRules="searchFormOptions" |
| | | :formFields="searchFormFields" |
| | | :select2Count="select2Count" |
| | | > |
| | | <vol-form ref="searchForm" :load-key="false" style="padding: 0 15px" :label-width="labelWidth" |
| | | :formRules="searchFormOptions" :formFields="searchFormFields" :select2Count="select2Count"> |
| | | <template #footer> |
| | | <div v-if="!fiexdSearchForm" class="form-closex"> |
| | | <el-button size="small" type="primary" plain @click="search"> |
| | |
| | | </div> |
| | | <!--å¿«éæ¥è¯¢åæ®µ--> |
| | | <div class="search-line" v-if="!fiexdSearchForm && !searchBoxShow"> |
| | | <QuickSearch |
| | | v-if="singleSearch" |
| | | :searchFormOptions="searchFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :select2Count="select2Count" |
| | | :label-width="labelWidth" |
| | | :queryFields="queryFields" |
| | | @tiggerPress="quickSearchKeyPress" |
| | | ></QuickSearch> |
| | | <QuickSearch v-if="singleSearch" :searchFormOptions="searchFormOptions" :searchFormFields="searchFormFields" |
| | | :select2Count="select2Count" :label-width="labelWidth" :queryFields="queryFields" |
| | | @tiggerPress="quickSearchKeyPress"></QuickSearch> |
| | | </div> |
| | | <!--æä½æé®ç»--> |
| | | <!-- 2020.11.29å¢å æ¥è¯¢çé¢hidden屿§ --> |
| | |
| | | <template :key="bIndex" v-for="(btn, bIndex) in buttons.slice(0, maxBtnLength)"> |
| | | <el-dropdown size="small" v-if="btn.data" :split-button="false"> |
| | | <el-button :color="btn.color" :dark="false" :type="btn.type" :plain="btn.plain"> |
| | | {{ btn.name }}<i class="el-icon-arrow-down el-icon--right"></i |
| | | ></el-button> |
| | | {{ btn.name }}<i class="el-icon-arrow-down el-icon--right"></i></el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item v-for="(item, index) in btn.data" :key="index"> |
| | |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | | <el-button |
| | | v-else |
| | | :type="btn.type" |
| | | size="small" |
| | | :color="btn.color" |
| | | :dark="false" |
| | | :class="btn.class" |
| | | :plain="btn.plain" |
| | | v-show="!btn.hidden" |
| | | @click="onClick(btn.onClick)" |
| | | > |
| | | <el-button v-else :type="btn.type" size="small" :color="btn.color" :dark="false" :class="btn.class" |
| | | :plain="btn.plain" v-show="!btn.hidden" @click="onClick(btn.onClick)"> |
| | | <i :class="btn.icon"></i> {{ btn.name }} |
| | | </el-button> |
| | | </template> |
| | | <el-button |
| | | type="default" |
| | | style="padding: 0px 10px" |
| | | size="small" |
| | | :plain="true" |
| | | v-if="showCustom" |
| | | @click="showCustomModel" |
| | | > |
| | | <el-button type="default" style="padding: 0px 10px" size="small" :plain="true" v-if="showCustom" |
| | | @click="showCustomModel"> |
| | | <i class="el-icon-s-grid"></i> |
| | | </el-button> |
| | | <el-dropdown size="small" @click="changeDropdown" v-if="buttons.length > maxBtnLength"> |
| | |
| | | </el-button> |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <el-dropdown-item |
| | | @click="changeDropdown(item.name)" |
| | | :name="item.name" |
| | | v-show="!item.hidden" |
| | | v-for="(item, dIndex) in buttons.slice(maxBtnLength, buttons.length)" |
| | | :key="dIndex" |
| | | > |
| | | <i :class="item.icon"></i> {{ item.name }}</el-dropdown-item |
| | | > |
| | | <el-dropdown-item @click="changeDropdown(item.name)" :name="item.name" v-show="!item.hidden" |
| | | v-for="(item, dIndex) in buttons.slice(maxBtnLength, buttons.length)" :key="dIndex"> |
| | | <i :class="item.icon"></i> {{ item.name }}</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | | </el-dropdown> |
| | |
| | | </div> |
| | | |
| | | <!-- åå²ä½ç½® --> |
| | | <vol-box |
| | | v-if="boxInit" |
| | | v-model="boxModel" |
| | | :title="boxOptions.title" |
| | | :width="boxOptions.width" |
| | | :height="boxOptions.height" |
| | | :modal="boxOptions.modal" |
| | | :draggable="boxOptions.draggable" |
| | | :padding="0" |
| | | :on-model-close="onGridModelClose" |
| | | @fullscreen="fullscreen" |
| | | > |
| | | <vol-box v-if="boxInit" v-model="boxModel" :title="boxOptions.title" :width="boxOptions.width" |
| | | :height="boxOptions.height" :modal="boxOptions.modal" :draggable="boxOptions.draggable" :padding="0" |
| | | :on-model-close="onGridModelClose" @fullscreen="fullscreen"> |
| | | <!--æç»å¤´é¨èªå®ä¹ç»ä»¶--> |
| | | <template #content> |
| | | <div class="box-com vol-edit-box"> |
| | | <div class="vol-edit-content"> |
| | | <component |
| | | :is="dynamicComponent.modelHeader" |
| | | ref="modelHeader" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <component :is="dynamicComponent.modelHeader" ref="modelHeader" @parentCall="parentCall"></component> |
| | | <!-- <div v-show="isBoxAudit" class="flow-step"> |
| | | <div v-for="(item, index) in workFlowSteps" :key="index"> |
| | | {{ item.stepName }} |
| | | </div> |
| | | </div> --> |
| | | <div class="item form-item"> |
| | | <vol-form |
| | | ref="form" |
| | | :editor="editor" |
| | | :load-key="false" |
| | | :label-width="boxOptions.labelWidth" |
| | | :formRules="editFormOptions" |
| | | :formFields="editFormFields" |
| | | :select2Count="select2Count" |
| | | ></vol-form> |
| | | <vol-form ref="form" :editor="editor" :load-key="false" :label-width="boxOptions.labelWidth" |
| | | :formRules="editFormOptions" :formFields="editFormFields" :select2Count="select2Count"></vol-form> |
| | | </div> |
| | | <!--æç»bodyèªå®ä¹ç»ä»¶--> |
| | | <component |
| | | :is="dynamicComponent.modelBody" |
| | | ref="modelBody" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <div |
| | | v-show="hasDetail" |
| | | v-if="detail.columns && detail.columns.length > 0" |
| | | class="grid-detail table-item item" |
| | | > |
| | | <component :is="dynamicComponent.modelBody" ref="modelBody" @parentCall="parentCall"></component> |
| | | <div v-show="hasDetail" v-if="detail.columns && detail.columns.length > 0" |
| | | class="grid-detail table-item item"> |
| | | <div class="toolbar"> |
| | | <div class="title form-text"> |
| | | <span> |
| | |
| | | </div> |
| | | <!--æç»è¡¨æ ¼æé®--> |
| | | <div class="btns" v-show="!isBoxAudit"> |
| | | <el-button |
| | | v-for="(btn, bIndex) in detailOptions.buttons" |
| | | :key="bIndex" |
| | | :plain="btn.plain" |
| | | v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)" |
| | | @click="onClick(btn.onClick)" |
| | | size="small" |
| | | ><i :class="btn.icon"></i>{{ btn.name }}</el-button |
| | | > |
| | | <el-button v-for="(btn, bIndex) in detailOptions.buttons" :key="bIndex" :plain="btn.plain" |
| | | v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)" @click="onClick(btn.onClick)" |
| | | size="small"><i :class="btn.icon"></i>{{ btn.name }}</el-button> |
| | | </div> |
| | | </div> |
| | | <vol-table |
| | | ref="detail" |
| | | @loadBefore="loadInternalDetailTableBefore" |
| | | @loadAfter="loadDetailTableAfter" |
| | | @rowChange="detailRowOnChange" |
| | | @rowClick="detailRowOnClick" |
| | | :url="detailOptions.url" |
| | | :load-key="false" |
| | | :index="true" |
| | | :tableData="detailOptions.data" |
| | | :columns="detailOptions.columns" |
| | | :pagination="detailOptions.pagination" |
| | | :height="detailOptions.height" |
| | | :single="detailOptions.single" |
| | | :pagination-hide="detailOptions.paginationHide" |
| | | :defaultLoadPage="detailOptions.load" |
| | | :beginEdit="detailOptions.beginEdit" |
| | | :endEditBefore="detailOptions.endEditBefore" |
| | | :endEditAfter="detailOptions.endEditAfter" |
| | | :double-edit="detailOptions.doubleEdit" |
| | | :column-index="detailOptions.columnIndex" |
| | | :ck="detailOptions.ck" |
| | | :text-inline="detailOptions.textInline" |
| | | :select2Count="select2Count" |
| | | :selectable="detailSelectable" |
| | | :spanMethod="detailSpanMethod" |
| | | ></vol-table> |
| | | <vol-table ref="detail" @loadBefore="loadInternalDetailTableBefore" @loadAfter="loadDetailTableAfter" |
| | | @rowChange="detailRowOnChange" @rowClick="detailRowOnClick" :url="detailOptions.url" :load-key="false" |
| | | :index="true" :tableData="detailOptions.data" :columns="detailOptions.columns" |
| | | :pagination="detailOptions.pagination" :height="detailOptions.height" :single="detailOptions.single" |
| | | :pagination-hide="detailOptions.paginationHide" :defaultLoadPage="detailOptions.load" |
| | | :beginEdit="detailOptions.beginEdit" :endEditBefore="detailOptions.endEditBefore" |
| | | :endEditAfter="detailOptions.endEditAfter" :double-edit="detailOptions.doubleEdit" |
| | | :column-index="detailOptions.columnIndex" :ck="detailOptions.ck" |
| | | :text-inline="detailOptions.textInline" :select2Count="select2Count" :selectable="detailSelectable" |
| | | :spanMethod="detailSpanMethod"></vol-table> |
| | | </div> |
| | | <component |
| | | :is="dynamicComponent.modelFooter" |
| | | ref="modelFooter" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <component :is="dynamicComponent.modelFooter" ref="modelFooter" @parentCall="parentCall"></component> |
| | | </div> |
| | | <div class="vol-edit-box-right"> |
| | | <component |
| | | :is="dynamicComponent.modelRight" |
| | | ref="modelRight" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <component :is="dynamicComponent.modelRight" ref="modelRight" @parentCall="parentCall"></component> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | <el-button size="small" type="primary" plain @click="onGridModelClose(false)"> |
| | | <i class="el-icon-close">å
³é</i> |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | v-show="auditParam.showViewButton" |
| | | @click="auditParam.model = true" |
| | | > |
| | | <el-button size="small" type="primary" v-show="auditParam.showViewButton" @click="auditParam.model = true"> |
| | | <i class="el-icon-view">审æ¹</i> |
| | | </el-button> |
| | | </div> |
| | | <div v-show="!isBoxAudit"> |
| | | <el-button |
| | | v-for="(btn, bIndex) in boxButtons" |
| | | :key="bIndex" |
| | | :type="btn.type" |
| | | size="small" |
| | | :plain="btn.plain" |
| | | v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)" |
| | | :disabled="btn.hasOwnProperty('disabled') && !!btn.disabled" |
| | | @click="onClick(btn.onClick)" |
| | | > |
| | | <el-button v-for="(btn, bIndex) in boxButtons" :key="bIndex" :type="btn.type" size="small" |
| | | :plain="btn.plain" v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)" |
| | | :disabled="btn.hasOwnProperty('disabled') && !!btn.disabled" @click="onClick(btn.onClick)"> |
| | | <i :class="btn.icon"></i>{{ btn.name }} |
| | | </el-button> |
| | | <el-button size="small" type="primary" plain @click="onGridModelClose(false)"> |
| | |
| | | </div> |
| | | <!--bodyèªå®ä¹ç»ä»¶--> |
| | | <div class="grid-body"> |
| | | <component |
| | | :is="dynamicComponent.gridBody" |
| | | ref="gridBody" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <component :is="dynamicComponent.gridBody" ref="gridBody" @parentCall="parentCall"></component> |
| | | </div> |
| | | |
| | | <!--tableè¡¨æ ¼--> |
| | | <div class="grid-container"> |
| | | <!-- 2021.05.02å¢å æ å½¢ç»æ rowKey --> |
| | | <vol-table |
| | | ref="table" |
| | | :single="single" |
| | | :rowKey="rowKey" |
| | | :loadTreeChildren="loadTreeTableChildren" |
| | | @loadBefore="loadTableBefore" |
| | | @loadAfter="loadTableAfter" |
| | | @rowChange="rowOnChange" |
| | | @rowClick="rowOnClick" |
| | | @rowDbClick="rowOnDbClick" |
| | | @selectionChange="selectionOnChange" |
| | | :tableData="[]" |
| | | :linkView="linkData" |
| | | :columns="columns" |
| | | :pagination="pagination" |
| | | :height="height" |
| | | :max-height="tableMaxHeight" |
| | | :pagination-hide="paginationHide" |
| | | :url="url" |
| | | :load-key="false" |
| | | :defaultLoadPage="load" |
| | | :double-edit="doubleEdit" |
| | | :index="doubleEdit" |
| | | :beginEdit="tableBeginEdit" |
| | | :endEditBefore="tableEndEditBefore" |
| | | :column-index="columnIndex" |
| | | :text-inline="textInline" |
| | | :ck="ck" |
| | | :select2Count="select2Count" |
| | | :selectable="selectable" |
| | | :spanMethod="spanMethod" |
| | | :lazy="lazy" |
| | | :defaultExpandAll="defaultExpandAll" |
| | | :expandRowKeys="expandRowKeys" |
| | | :rowParentField="rowParentField" |
| | | ></vol-table> |
| | | <vol-table ref="table" :single="single" :rowKey="rowKey" :loadTreeChildren="loadTreeTableChildren" |
| | | @loadBefore="loadTableBefore" @loadAfter="loadTableAfter" @rowChange="rowOnChange" @rowClick="rowOnClick" |
| | | @rowDbClick="rowOnDbClick" @selectionChange="selectionOnChange" :tableData="[]" :linkView="linkData" |
| | | :columns="columns" :pagination="pagination" :height="height" :max-height="tableMaxHeight" |
| | | :pagination-hide="paginationHide" :url="url" :load-key="false" :defaultLoadPage="load" :double-edit="doubleEdit" |
| | | :index="doubleEdit" :beginEdit="tableBeginEdit" :endEditBefore="tableEndEditBefore" :column-index="columnIndex" |
| | | :text-inline="textInline" :ck="ck" :select2Count="select2Count" :selectable="selectable" |
| | | :spanMethod="spanMethod" :lazy="lazy" :defaultExpandAll="defaultExpandAll" :expandRowKeys="expandRowKeys" |
| | | :rowParentField="rowParentField"></vol-table> |
| | | </div> |
| | | </div> |
| | | |
| | | <!--footerèªå®ä¹ç»ä»¶--> |
| | | <component |
| | | :is="dynamicComponent.gridFooter" |
| | | ref="gridFooter" |
| | | @parentCall="parentCall" |
| | | ></component> |
| | | <component :is="dynamicComponent.gridFooter" ref="gridFooter" @parentCall="parentCall"></component> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | this.initDicKeys() //åå§ä¸æ¡æ°æ®æº |
| | | this.onInited() //åå§ååï¼å¦æéè¦åå
¶ä»å¤ç卿©å±æ¹æ³ä¸è¦çæ¤æ¹æ³ |
| | | }, |
| | | beforeUpdate: function () {}, |
| | | updated: function () {} |
| | | beforeUpdate: function () { }, |
| | | updated: function () { } |
| | | } |
| | | |
| | | import props from './props.js' |