提交 efd1a44d 编写于 作者: ibizdev's avatar ibizdev

Mosher 发布系统代码 [后台服务,演示应用]

上级 14e9b4f4
......@@ -230,7 +230,7 @@ export default {
uiactions: {
},
},
list_list: {
autogrouplist_list: {
nodata:"",
uiactions: {
},
......@@ -243,6 +243,11 @@ export default {
remove: "Remove",
},
},
haspanellist_list: {
nodata:"",
uiactions: {
},
},
usr2_dataview: {
nodata:"",
uiactions: {
......
......@@ -229,7 +229,7 @@ export default {
uiactions: {
},
},
list_list: {
autogrouplist_list: {
nodata:"",
uiactions: {
},
......@@ -242,6 +242,11 @@ export default {
remove: "批量删除",
},
},
haspanellist_list: {
nodata:"",
uiactions: {
},
},
usr2_dataview: {
nodata:"",
uiactions: {
......
......@@ -110,6 +110,7 @@ export default {
f27: "数据选择(无AC、数据链接)",
f28: "数据选择(下拉)",
f29: "数据选择(下拉、数据链接)",
formitem: "地址栏(选择)",
ibizsample0002id: "值项表单项",
f30: "自动填充",
f31: "自动填充(只能选择)",
......
......@@ -109,6 +109,7 @@ export default {
f27: "数据选择(无AC、数据链接)",
f28: "数据选择(下拉)",
f29: "数据选择(下拉、数据链接)",
formitem: "地址栏(选择)",
ibizsample0002id: "值项表单项",
f30: "自动填充",
f31: "自动填充(只能选择)",
......
......@@ -2,7 +2,7 @@
import { Component } from 'vue-property-decorator';
import IBIZBOOKAutoGroupListViewBase from './ibizbookauto-group-list-view-base.vue';
import view_list from '@widgets/ibizbook/list-list/list-list.vue';
import view_list from '@widgets/ibizbook/auto-group-list-list/auto-group-list-list.vue';
import view_searchform from '@widgets/ibizbook/default-searchform/default-searchform.vue';
@Component({
components: {
......
......@@ -2,7 +2,7 @@
import { Component } from 'vue-property-decorator';
import IBIZBOOKHasPanelListViewBase from './ibizbookhas-panel-list-view-base.vue';
import view_list from '@widgets/ibizbook/list-list/list-list.vue';
import view_list from '@widgets/ibizbook/has-panel-list-list/has-panel-list-list.vue';
import view_searchform from '@widgets/ibizbook/default-searchform/default-searchform.vue';
@Component({
components: {
......
/**
* AutoGroupList 部件模型
*
* @export
* @class AutoGroupListModel
*/
export default class AutoGroupListModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof AutoGroupListListMode
*/
public getDataItems(): any[] {
return [
{
name: 'ibizbookname',
},
{
name: 'booknumber',
},
{
name: 'price',
},
{
name: 'press',
},
{
name: 'ibizbookid',
},
{
name: 'author',
},
{
name: 'type',
},
{
name: 'srfkey',
prop: 'ibizbookid',
dataType: 'GUID',
},
{
name: 'srfmajortext',
prop: 'ibizbookname',
dataType: 'TEXT',
},
{
name: 'ibizbook',
prop: 'ibizbookid',
dataType: 'FONTKEY',
},
{
name:'size',
prop:'size'
},
{
name:'query',
prop:'query'
},
{
name:'sort',
prop:'sort'
},
{
name:'page',
prop:'page'
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name: 'srffrontuf',
prop: 'srffrontuf',
dataType: 'TEXT',
},
]
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import IBIZBOOKService from '@/service/ibizbook/ibizbook-service';
import AutoGroupListModel from './auto-group-list-list-model';
/**
* AutoGroupList 部件服务对象
*
* @export
* @class AutoGroupListService
*/
export default class AutoGroupListService extends ControlService {
/**
* 图书服务对象
*
* @type {IBIZBOOKService}
* @memberof AutoGroupListService
*/
public appEntityService: IBIZBOOKService = new IBIZBOOKService({ $store: this.getStore() });
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof AutoGroupListService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of AutoGroupListService.
*
* @param {*} [opts={}]
* @memberof AutoGroupListService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new AutoGroupListModel();
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof AutoGroupListService
*/
@Errorlog
public search(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.FetchDefault(Context,Data, isloading);
}
result.then(async (response) => {
await this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 删除数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof AutoGroupListService
*/
@Errorlog
public delete(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.remove(Context,Data , isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 添加数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof AutoGroupListService
*/
@Errorlog
public add(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.Create(Context,Data, isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 修改数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof AutoGroupListService
*/
@Errorlog
public update(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data,isloading);
}else{
result =_appEntityService.Update(Context,Data,isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
}
\ No newline at end of file
// this is less
.app-list {
height:100%;
flex-grow: 1;
overflow-y: auto;
.el-collapse-item__header.is-active{
color: #409eff;
background-color: #ecf5ff;
}
.app-list-item {
line-height: 34px;
border-radius:5px;
padding: 6px;
margin: 6px;
box-shadow: 0px 0px 2px 1px rgb(209, 208, 208);
background: #f7f7fa;
min-height: 24px;
display: flex;
justify-content: space-between;
align-items: center;
}
.app-list-item.isSelect {
background: #ecf5ff;
border-left: 5px solid #2d8cf0;
box-shadow: 0px 0px 3px 1px #82bff7;
}
.app-list-item:hover {
background: #ecf5ff;
}
.loadmore {
text-align: center;
padding: 10px;
text-decoration: underline;
color: #82bff7;
cursor: default;
}
}
.app-list-empty {
height:100%;
color: #909399;
display: flex;
justify-content: center;
align-items: center;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import AutoGroupListBase from './auto-group-list-list-base.vue';
@Component({
components: {
}
})
export default class AutoGroupList extends AutoGroupListBase {
}
</script>
\ No newline at end of file
/**
* HasPanelList 部件模型
*
* @export
* @class HasPanelListModel
*/
export default class HasPanelListModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof HasPanelListListMode
*/
public getDataItems(): any[] {
return [
{
name: 'ibizbookname',
},
{
name: 'type',
},
{
name: 'booknumber',
},
{
name: 'ibizbookid',
},
{
name: 'price',
},
{
name: 'press',
},
{
name: 'author',
},
{
name: 'srfkey',
prop: 'ibizbookid',
dataType: 'GUID',
},
{
name: 'srfmajortext',
prop: 'ibizbookname',
dataType: 'TEXT',
},
{
name: 'ibizbook',
prop: 'ibizbookid',
dataType: 'FONTKEY',
},
{
name:'size',
prop:'size'
},
{
name:'query',
prop:'query'
},
{
name:'sort',
prop:'sort'
},
{
name:'page',
prop:'page'
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
name: 'srffrontuf',
prop: 'srffrontuf',
dataType: 'TEXT',
},
]
}
}
\ No newline at end of file
import { Http,Util,Errorlog } from '@/utils';
import ControlService from '@/widgets/control-service';
import IBIZBOOKService from '@/service/ibizbook/ibizbook-service';
import HasPanelListModel from './has-panel-list-list-model';
/**
* HasPanelList 部件服务对象
*
* @export
* @class HasPanelListService
*/
export default class HasPanelListService extends ControlService {
/**
* 图书服务对象
*
* @type {IBIZBOOKService}
* @memberof HasPanelListService
*/
public appEntityService: IBIZBOOKService = new IBIZBOOKService({ $store: this.getStore() });
/**
* 设置从数据模式
*
* @type {boolean}
* @memberof HasPanelListService
*/
public setTempMode(){
this.isTempMode = false;
}
/**
* Creates an instance of HasPanelListService.
*
* @param {*} [opts={}]
* @memberof HasPanelListService
*/
constructor(opts: any = {}) {
super(opts);
this.model = new HasPanelListModel();
}
/**
* 查询数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof HasPanelListService
*/
@Errorlog
public search(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.FetchDefault(Context,Data, isloading);
}
result.then(async (response) => {
await this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 删除数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof HasPanelListService
*/
@Errorlog
public delete(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.remove(Context,Data , isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 添加数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof HasPanelListService
*/
@Errorlog
public add(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data, isloading);
}else{
result =_appEntityService.Create(Context,Data, isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
/**
* 修改数据
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof HasPanelListService
*/
@Errorlog
public update(action: string, context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
const {data:Data,context:Context} = this.handleRequestData(action,context,data,true);
return new Promise((resolve: any, reject: any) => {
const _appEntityService: any = this.appEntityService;
let result: Promise<any>;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](Context,Data,isloading);
}else{
result =_appEntityService.Update(Context,Data,isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
}
\ No newline at end of file
// this is less
.app-list {
height:100%;
flex-grow: 1;
overflow-y: auto;
.el-collapse-item__header.is-active{
color: #409eff;
background-color: #ecf5ff;
}
.app-list-item {
line-height: 34px;
border-radius:5px;
padding: 6px;
margin: 6px;
box-shadow: 0px 0px 2px 1px rgb(209, 208, 208);
background: #f7f7fa;
min-height: 24px;
display: flex;
justify-content: space-between;
align-items: center;
}
.app-list-item.isSelect {
background: #ecf5ff;
border-left: 5px solid #2d8cf0;
box-shadow: 0px 0px 3px 1px #82bff7;
}
.app-list-item:hover {
background: #ecf5ff;
}
.loadmore {
text-align: center;
padding: 10px;
text-decoration: underline;
color: #82bff7;
cursor: default;
}
}
.app-list-empty {
height:100%;
color: #909399;
display: flex;
justify-content: center;
align-items: center;
}
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import HasPanelListBase from './has-panel-list-list-base.vue';
import layout_list_itempanel from '@widgets/ibizbook/has-panel-list-panel/has-panel-list-panel.vue';
@Component({
components: {
layout_list_itempanel,
}
})
export default class HasPanelList extends HasPanelListBase {
}
</script>
\ No newline at end of file
/**
* HasPanelList 部件模型
*
* @export
* @class HasPanelListModel
*/
export default class HasPanelListModel {
/**
* 获取数据项集合
*
* @returns {any[]}
* @memberof HasPanelListModel
*/
public getDataItems(): any[] {
return [
{
name: 'bookname',
prop: 'ibizbookname'
},
{
name: 'author',
prop: 'author'
},
{
name: 'press',
prop: 'press'
}
]
}
}
\ No newline at end of file
import { Http } from '@/utils';
import ControlService from '@/widgets/control-service';
/**
* HasPanelList 部件服务对象
*
* @export
* @class HasPanelListService
*/
export default class HasPanelListService extends ControlService {
}
\ No newline at end of file
// this is less
.app-layoutpanel {
height: 100%;
.app-layoutpanel-container {
padding: 6px;
}
.app-layoutpanel-tabpanel{
>.el-tabs {
>.el-.el-tabs__header{
margin: 0 0 10px;
}
.app-layoutpanel-tabpage{
padding: 6px;
}
}
}
.app-layoutpanel-button,.app-layoutpanel-conctrl,.app-layoutpanel-ctrlpos,.app-layoutpanel-field,.app-layoutpanel-rowitem,.app-layoutpanel-usercontrol{
padding: 6px;
}
.item-field{
padding: 0 4px;
display: flex;
>.item-field-label{
padding: 0 8px;
}
}
}
\ No newline at end of file
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import HasPanelListBase from './has-panel-list-panel-base.vue';
@Component({
components: {
}
})
export default class HasPanelList extends HasPanelListBase {
}
</script>
\ No newline at end of file
......@@ -506,6 +506,13 @@
@formitemvaluechange="onFormItemValueChange">
</app-picker>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.formitem.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='formitem' :itemRules="this.rules().formitem" class='' :caption="$t('entities.ibizsample0001.main4_form.details.formitem')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.formitem.error" :isEmptyCaption="false" labelPos="LEFT">
</app-form-item>
</i-col>
......@@ -983,6 +990,7 @@ export default class Main4Base extends Vue implements ControlInterface {
f27: null,
f28: null,
f29: null,
formitem: null,
ibizsample0002id: null,
f30: null,
f31: null,
......@@ -1192,6 +1200,10 @@ export default class Main4Base extends Vue implements ControlInterface {
{ required: this.detailsModel.f29.required, type: 'string', message: '数据选择(下拉、数据链接) 值不能为空', trigger: 'change' },
{ required: this.detailsModel.f29.required, type: 'string', message: '数据选择(下拉、数据链接) 值不能为空', trigger: 'blur' },
],
formitem: [
{ required: this.detailsModel.formitem.required, type: 'string', message: '地址栏(选择) 值不能为空', trigger: 'change' },
{ required: this.detailsModel.formitem.required, type: 'string', message: '地址栏(选择) 值不能为空', trigger: 'blur' },
],
f30: [
{ required: this.detailsModel.f30.required, type: 'string', message: '自动填充 值不能为空', trigger: 'change' },
{ required: this.detailsModel.f30.required, type: 'string', message: '自动填充 值不能为空', trigger: 'blur' },
......@@ -1408,6 +1420,8 @@ export default class Main4Base extends Vue implements ControlInterface {
f28: new FormItemModel({ caption: '数据选择(下拉)', detailType: 'FORMITEM', name: 'f28', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
f29: new FormItemModel({ caption: '数据选择(下拉、数据链接)', detailType: 'FORMITEM', name: 'f29', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
formitem: new FormItemModel({ caption: '地址栏(选择)', detailType: 'FORMITEM', name: 'formitem', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
ibizsample0002id: new FormItemModel({ caption: '值项表单项', detailType: 'FORMITEM', name: 'ibizsample0002id', visible: true, isShowCaption: true, form: this, isControlledContent: false , required:false, disabled: false, enableCond: 3 })
,
......@@ -1975,6 +1989,18 @@ export default class Main4Base extends Vue implements ControlInterface {
this.formDataChange({ name: 'f29', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 formitem 值
*
* @param {*} newVal
* @param {*} oldVal
* @memberof Main4Base
*/
@Watch('data.formitem')
onFormitemChange(newVal: any, oldVal: any) {
this.formDataChange({ name: 'formitem', newVal: newVal, oldVal: oldVal });
}
/**
* 监控表单属性 ibizsample0002id 值
*
......@@ -2159,6 +2185,7 @@ export default class Main4Base extends Vue implements ControlInterface {
}
......
......@@ -215,6 +215,10 @@ export default class Main4Model {
prop: 'ibizsample0002name',
dataType: 'PICKUPTEXT',
},
{
name: 'formitem',
dataType:'FORMITEM',
},
{
name: 'ibizsample0002id',
prop: 'ibizsample0001id',
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册