| | |
| | | NODE_ENV=development |
| | | #VUE_APP_API_BASE_URL=http://192.168.0.95:9999 |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:8080 |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:8099 |
| | | # VUE_APP_API_BASE_URL=http://195.0.1.10:8099 |
| | | VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas |
| | | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview |
| | |
| | | NODE_ENV=production |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:8080 |
| | | # VUE_APP_API_BASE_URL=http://195.0.1.10:8099 |
| | | VUE_APP_API_BASE_URL=http://127.0.0.1:8099 |
| | | VUE_APP_CAS_BASE_URL=http://localhost:8888/cas |
| | | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview1p |
| | |
| | | "dependencies": { |
| | | "@antv/data-set": "^0.11.4", |
| | | "@jeecg/antd-online-mini": "3.0.0-RC", |
| | | "@jiaminghi/data-view": "^2.10.0", |
| | | "@tinymce/tinymce-vue": "2.1.0", |
| | | "@toast-ui/editor": "^2.1.2", |
| | | "ali-oss": "^6.17.1", |
| | |
| | | "last 2 versions", |
| | | "not ie <= 8" |
| | | ] |
| | | } |
| | | } |
| | |
| | | // }); |
| | | |
| | | //注å
¥å
¨å±å±æ§$message |
| | | import {message,notification } from 'ant-design-vue' |
| | | import { message, notification } from 'ant-design-vue' |
| | | Vue.prototype.$message = message |
| | | Vue.prototype.$notification = notification |
| | | message.config({ |
| | | }) |
| | | notification.config({ |
| | | bottom:'20px', |
| | | right:'100px' |
| | | bottom: '20px', |
| | | right: '100px' |
| | | }) |
| | | |
| | | // å°èªå¨æ³¨åææç»ä»¶ä¸ºå
¨å±ç»ä»¶ |
| | | import dataV from '@jiaminghi/data-view' |
| | | Vue.use(dataV) |
| | | // import dataV from '@jiaminghi/data-view' |
| | | // Vue.use(dataV) |
| | | |
| | | import VueDragResize from "vue-drag-resize" |
| | | Vue.component('vue-drag-resize', VueDragResize) |
| | |
| | | beforeCreate() { |
| | | Vue.prototype.$bus = new Vue() |
| | | }, |
| | | mounted () { |
| | | mounted() { |
| | | store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true)) |
| | | store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme)) |
| | | store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout)) |
| | |
| | | store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak)) |
| | | store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor)) |
| | | store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN)) |
| | | store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage)) |
| | | store.commit('SET_MULTI_PAGE', Vue.ls.get(DEFAULT_MULTI_PAGE, config.multipage)) |
| | | }, |
| | | render: h => h(App) |
| | | }).$mount('#app') |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card |
| | | title="çç»" |
| | | :bordered="false" |
| | | > |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form |
| | | layout="inline" |
| | | @keyup.enter.native="searchQuery" |
| | | > |
| | | <a-row :gutter="24"> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <!-- æ¥è¯¢åºå-END --> |
| | | |
| | | <!-- æä½æé®åºå --> |
| | | <div class="table-operator"> |
| | | <a-button |
| | | @click="handleAdd" |
| | | type="primary" |
| | | icon="plus" |
| | | >æ°å¢</a-button> |
| | | <!-- <a-button |
| | | type="primary" |
| | | icon="download" |
| | | @click="handleExportXls('mom_base_team')" |
| | | >导åº</a-button> |
| | | <a-upload |
| | | name="file" |
| | | :showUploadList="false" |
| | | :multiple="false" |
| | | :headers="tokenHeader" |
| | | :action="importExcelUrl" |
| | | @change="handleImportExcel" |
| | | > |
| | | <a-button |
| | | type="primary" |
| | | icon="import" |
| | | >导å
¥</a-button> |
| | | </a-upload> --> |
| | | <!-- é«çº§æ¥è¯¢åºå --> |
| | | <!-- <j-super-query |
| | | :fieldList="superFieldList" |
| | | ref="superQueryModal" |
| | | @handleSuperQuery="handleSuperQuery" |
| | | ></j-super-query> --> |
| | | <a-dropdown v-if="selectedRowKeys.length > 0"> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item |
| | | key="1" |
| | | @click="batchDel" |
| | | ><a-icon type="delete" />å é¤</a-menu-item> |
| | | </a-menu> |
| | | <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down" /></a-button> |
| | | </a-dropdown> |
| | | </div> |
| | | |
| | | <!-- tableåºå-begin --> |
| | | <div> |
| | | <div |
| | | class="ant-alert ant-alert-info" |
| | | style="margin-bottom: 16px;" |
| | | > |
| | | <i class="anticon anticon-info-circle ant-alert-icon"></i> 已鿩 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 |
| | | <a |
| | | style="margin-left: 24px" |
| | | @click="onClearSelected" |
| | | >æ¸
空</a> |
| | | </div> |
| | | |
| | | <a-table |
| | | ref="table" |
| | | size="middle" |
| | | :scroll="{x:true}" |
| | | bordered |
| | | rowKey="id" |
| | | :columns="columns" |
| | | :dataSource="dataSource" |
| | | :pagination="ipagination" |
| | | :loading="loading" |
| | | :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
| | | class="j-table-force-nowrap" |
| | | @change="handleTableChange" |
| | | > |
| | | |
| | | <template |
| | | slot="htmlSlot" |
| | | slot-scope="text" |
| | | > |
| | | <div v-html="text"></div> |
| | | </template> |
| | | <template |
| | | slot="imgSlot" |
| | | slot-scope="text,record" |
| | | > |
| | | <span |
| | | v-if="!text" |
| | | style="font-size: 12px;font-style: italic;" |
| | | >æ å¾ç</span> |
| | | <img |
| | | v-else |
| | | :src="getImgView(text)" |
| | | :preview="record.id" |
| | | height="25px" |
| | | alt="" |
| | | style="max-width:80px;font-size: 12px;font-style: italic;" |
| | | /> |
| | | </template> |
| | | <template |
| | | slot="fileSlot" |
| | | slot-scope="text" |
| | | > |
| | | <span |
| | | v-if="!text" |
| | | style="font-size: 12px;font-style: italic;" |
| | | >æ æä»¶</span> |
| | | <a-button |
| | | v-else |
| | | :ghost="true" |
| | | type="primary" |
| | | icon="download" |
| | | size="small" |
| | | @click="downloadFile(text)" |
| | | > |
| | | ä¸è½½ |
| | | </a-button> |
| | | </template> |
| | | |
| | | <span |
| | | slot="action" |
| | | slot-scope="text, record" |
| | | > |
| | | <a @click="handleEdit(record)">ç¼è¾</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | <a-dropdown> |
| | | <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> |
| | | <a-menu slot="overlay"> |
| | | <a-menu-item> |
| | | <a @click="handleDetail(record)">详æ
</a> |
| | | </a-menu-item> |
| | | <a-menu-item> |
| | | <a-popconfirm |
| | | title="ç¡®å®å é¤å?" |
| | | @confirm="() => handleDelete(record.id)" |
| | | > |
| | | <a>å é¤</a> |
| | | </a-popconfirm> |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </a-dropdown> |
| | | </span> |
| | | |
| | | </a-table> |
| | | </div> |
| | | |
| | | <team-modal |
| | | ref="modalForm" |
| | | @ok="modalFormOk" |
| | | ></team-modal> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import '@/assets/less/TableExpand.less' |
| | | import { mixinDevice } from '@/utils/mixin' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import TeamModal from './modules/team/TeamModal' |
| | | |
| | | export default { |
| | | name: 'TeamList', |
| | | mixins: [JeecgListMixin, mixinDevice], |
| | | components: { |
| | | TeamModal |
| | | }, |
| | | data() { |
| | | return { |
| | | description: 'mom_base_team管ç页é¢', |
| | | // 表头 |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: "center", |
| | | customRender: function (t, r, index) { |
| | | return parseInt(index) + 1; |
| | | } |
| | | }, |
| | | { |
| | | title: 'é¨é¨', |
| | | align: "center", |
| | | dataIndex: 'departId_dictText' |
| | | }, |
| | | { |
| | | title: 'ç¼ç ', |
| | | align: "center", |
| | | dataIndex: 'num' |
| | | }, |
| | | { |
| | | title: 'åç§°', |
| | | align: "center", |
| | | dataIndex: 'name' |
| | | }, |
| | | { |
| | | title: '夿³¨', |
| | | align: "center", |
| | | dataIndex: 'remark' |
| | | }, |
| | | |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | align: "center", |
| | | fixed: "right", |
| | | width: 147, |
| | | scopedSlots: { customRender: 'action' } |
| | | } |
| | | ], |
| | | url: { |
| | | list: "/base/team/list", |
| | | delete: "/base/team/delete", |
| | | deleteBatch: "/base/team/deleteBatch", |
| | | exportXlsUrl: "/base/team/exportXls", |
| | | importExcelUrl: "/base/team/importExcel", |
| | | |
| | | }, |
| | | dictOptions: {}, |
| | | superFieldList: [], |
| | | } |
| | | }, |
| | | created() { |
| | | this.getSuperFieldList(); |
| | | }, |
| | | computed: { |
| | | importExcelUrl: function () { |
| | | return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; |
| | | }, |
| | | }, |
| | | methods: { |
| | | initDictConfig() { |
| | | }, |
| | | getSuperFieldList() { |
| | | let fieldList = []; |
| | | fieldList.push({ type: 'string', value: 'num', text: 'num', dictCode: '' }) |
| | | fieldList.push({ type: 'string', value: 'name', text: 'name', dictCode: '' }) |
| | | fieldList.push({ type: 'string', value: 'remark', text: 'remark', dictCode: '' }) |
| | | fieldList.push({ type: 'string', value: 'status', text: 'status', dictCode: '' }) |
| | | fieldList.push({ type: 'string', value: 'departId', text: 'departId', dictCode: '' }) |
| | | this.superFieldList = fieldList |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <j-form-container :disabled="formDisabled"> |
| | | <a-form-model |
| | | ref="form" |
| | | :model="model" |
| | | :rules="validatorRules" |
| | | slot="detail" |
| | | > |
| | | <a-row> |
| | | <a-col :span="24"> |
| | | <a-form-model-item |
| | | label="é¨é¨" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="departId" |
| | | > |
| | | <j-dict-select-tag |
| | | type="list" |
| | | v-model="model.departId" |
| | | dictCode="sys_depart,depart_name,id, del_flag!='1'" |
| | | placeholder="è¯·éæ©é¨é¨" |
| | | /> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item |
| | | label="çç»ç¼ç " |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="num" |
| | | > |
| | | <a-input |
| | | v-model="model.num" |
| | | placeholder="请è¾å
¥çç»ç¼ç " |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item |
| | | label="çç»åç§°" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="name" |
| | | > |
| | | <a-input |
| | | v-model="model.name" |
| | | placeholder="请è¾å
¥çç»åç§°" |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item |
| | | label="夿³¨" |
| | | :labelCol="labelCol" |
| | | :wrapperCol="wrapperCol" |
| | | prop="remark" |
| | | > |
| | | <a-input |
| | | v-model="model.remark" |
| | | placeholder="请è¾å
¥å¤æ³¨" |
| | | ></a-input> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | </a-form-model> |
| | | </j-form-container> |
| | | </a-spin> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { httpAction, getAction } from '@/api/manage' |
| | | import { validateDuplicateValue } from '@/utils/util' |
| | | |
| | | export default { |
| | | name: 'TeamForm', |
| | | components: { |
| | | }, |
| | | props: { |
| | | //表åç¦ç¨ |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false, |
| | | required: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | model: { |
| | | }, |
| | | labelCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 5 }, |
| | | }, |
| | | wrapperCol: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 }, |
| | | }, |
| | | confirmLoading: false, |
| | | validatorRules: { |
| | | departId: [ |
| | | { required: true, message: 'è¯·éæ©é¨é¨!' }, |
| | | |
| | | ], |
| | | num: [ |
| | | { required: true, message: '请è¾å
¥çç»ç¼ç !' }, |
| | | |
| | | ], |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥çç»åç§°!' }, |
| | | ], |
| | | }, |
| | | url: { |
| | | add: "/base/team/add", |
| | | edit: "/base/team/edit", |
| | | queryById: "/base/team/queryById" |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | formDisabled() { |
| | | return this.disabled |
| | | }, |
| | | }, |
| | | created() { |
| | | //å¤ä»½modelåå§å¼ |
| | | this.modelDefault = JSON.parse(JSON.stringify(this.model)); |
| | | }, |
| | | methods: { |
| | | add() { |
| | | this.edit(this.modelDefault); |
| | | }, |
| | | edit(record) { |
| | | this.model = Object.assign({}, record); |
| | | this.visible = true; |
| | | }, |
| | | submitForm() { |
| | | const that = this; |
| | | // 触å表åéªè¯ |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true; |
| | | let httpurl = ''; |
| | | let method = ''; |
| | | if (!this.model.id) { |
| | | httpurl += this.url.add; |
| | | method = 'post'; |
| | | } else { |
| | | httpurl += this.url.edit; |
| | | method = 'put'; |
| | | } |
| | | httpAction(httpurl, this.model, method).then((res) => { |
| | | if (res.success) { |
| | | that.$message.success(res.message); |
| | | that.$emit('ok'); |
| | | } else { |
| | | that.$message.warning(res.message); |
| | | } |
| | | }).finally(() => { |
| | | that.confirmLoading = false; |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <j-modal |
| | | :title="title" |
| | | :width="width" |
| | | :visible="visible" |
| | | switchFullscreen |
| | | @ok="handleOk" |
| | | :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" |
| | | @cancel="handleCancel" |
| | | cancelText="å
³é"> |
| | | <team-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></team-form> |
| | | </j-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import TeamForm from './TeamForm' |
| | | export default { |
| | | name: 'TeamModal', |
| | | components: { |
| | | TeamForm |
| | | }, |
| | | data () { |
| | | return { |
| | | title:'', |
| | | width:800, |
| | | visible: false, |
| | | disableSubmit: false |
| | | } |
| | | }, |
| | | methods: { |
| | | add () { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.add(); |
| | | }) |
| | | }, |
| | | edit (record) { |
| | | this.visible=true |
| | | this.$nextTick(()=>{ |
| | | this.$refs.realForm.edit(record); |
| | | }) |
| | | }, |
| | | close () { |
| | | this.$emit('close'); |
| | | this.visible = false; |
| | | }, |
| | | handleOk () { |
| | | this.$refs.realForm.submitForm(); |
| | | }, |
| | | submitCallback(){ |
| | | this.$emit('ok'); |
| | | this.visible = false; |
| | | }, |
| | | handleCancel () { |
| | | this.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | resolved "https://registry.npmmirror.com/@jiaminghi/color/-/color-1.1.3.tgz#a2336750d1266155ffe80375c58c26fdec495611" |
| | | integrity sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg== |
| | | |
| | | "@jiaminghi/data-view@^2.10.0": |
| | | version "2.10.0" |
| | | resolved "https://registry.npmmirror.com/@jiaminghi/data-view/-/data-view-2.10.0.tgz#2146d8fc71b9f24be808238ca050ddb7a4c8949f" |
| | | integrity sha512-Cud2MTiMcqc5k2KWabR/svuVQmXHANqURo+yj40370/LdI/gyUJ6LG203hWXEnT1nMCeiv/SLVmxv3PXLScCeA== |
| | | dependencies: |
| | | "@babel/runtime" "^7.5.5" |
| | | "@jiaminghi/charts" "*" |
| | | |
| | | "@jiaminghi/transition@*": |
| | | version "1.1.11" |
| | | resolved "https://registry.npmmirror.com/@jiaminghi/transition/-/transition-1.1.11.tgz#576d8af092434b34201eba5eaecc79dd33c8ad8c" |