|
@@ -0,0 +1,476 @@
|
|
|
+import { ajax, cardCache, toast } from 'nc-lightapp-front';
|
|
|
+import { REQUEST_URL, CARD, PRIMARY_KEY, CARD_BUTTON, CARD_CACHE, DATASOURCE, STATUS, FIELD, BILL_TYPE_CODE, CARD_ADD_DISABLED_BUTTON } from '../../constant';
|
|
|
+import { buttonVisibilityControl } from './buttonVisibilityControl';
|
|
|
+import { afterHeadEvent } from './afterHeadEvent';
|
|
|
+
|
|
|
+let { updateCache, addCache, getNextId, deleteCacheById, getCacheById, getCurrentLastId } = cardCache;
|
|
|
+
|
|
|
+//卡片返回
|
|
|
+export function cardBack(props) {
|
|
|
+ props.pushTo(REQUEST_URL.toList, {});
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//卡片新增
|
|
|
+export function cardCreate(props) {
|
|
|
+ props.setUrlParam({ status: STATUS.add });
|
|
|
+ //单据有主组织,新增时,将其他字段设置为不可编辑
|
|
|
+ props.initMetaByPkorg();
|
|
|
+ props.button.setButtonDisabled(CARD_ADD_DISABLED_BUTTON, true);
|
|
|
+ props.cardTable.setAllCheckboxAble(CARD.table_code, false);
|
|
|
+ clearAll(props);
|
|
|
+ setByStatus(props);
|
|
|
+
|
|
|
+ let { getDefData } = cardCache;
|
|
|
+ let context = getDefData(CARD_CACHE.key, CARD_CACHE.dataSource);
|
|
|
+ if (context) {
|
|
|
+ let { pk_org, org_Name} = context;
|
|
|
+ props.form.setFormItemsValue(CARD.form_id, {
|
|
|
+ [FIELD.org]: { value: pk_org, display: org_Name }
|
|
|
+ });
|
|
|
+ afterHeadEvent(props, CARD.form_id, FIELD.org, { display: org_Name, value: pk_org }, { display: null, value: null });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 根据状态设置卡片
|
|
|
+ * @param {*} status
|
|
|
+ */
|
|
|
+function setByStatus(props) {
|
|
|
+ debugger;
|
|
|
+ buttonVisibilityControl(props);
|
|
|
+ let status = props.getUrlParam(STATUS.status);
|
|
|
+ //设置单据编号
|
|
|
+ props.BillHeadInfo.setBillHeadInfoVisible({
|
|
|
+ showBackBtn: status === STATUS.browse,
|
|
|
+ showBillCode: status === STATUS.browse,
|
|
|
+ billCode: props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.bill_no) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.bill_no).value
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ let vdef10=props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.vdef10).value;
|
|
|
+ if(vdef10==2){
|
|
|
+ props.form.setFormItemsValue(CARD.form_id, {
|
|
|
+ 'vdef10': { value: '1', display: null },//设置变更状态
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ debugger;
|
|
|
+ if (status !== STATUS.add) {
|
|
|
+ props.resMetaAfterPkorgEdit(); //选择主组织以后,恢复其他字段的编辑性
|
|
|
+ }
|
|
|
+ // orgVersionView(props);//组织版本视图
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 组织多版本视图
|
|
|
+ * @param {*} props
|
|
|
+ * @param {*} headCode
|
|
|
+ */
|
|
|
+function orgVersionView(props) {
|
|
|
+ let status = props.getUrlParam(STATUS.status);
|
|
|
+ //浏览态显示组织版本,编辑态显示组织
|
|
|
+ let showflag = status == STATUS.browse;
|
|
|
+ let obj = {};
|
|
|
+ obj[FIELD.org] = !showflag;
|
|
|
+ props.form.setFormItemsVisible(CARD.form_id, obj);
|
|
|
+}
|
|
|
+
|
|
|
+//清空表头表体数据
|
|
|
+function clearAll(props) {
|
|
|
+ props.form.EmptyAllFormValue(CARD.form_id);
|
|
|
+ props.cardTable.setTableData(CARD.table_code, { rows: [] });
|
|
|
+}
|
|
|
+
|
|
|
+//复制时清空数据
|
|
|
+export function copyClear(props) {
|
|
|
+ debugger;
|
|
|
+ if (props.getUrlParam('isCopy')) {
|
|
|
+ props.form.setFormItemsValue(CARD.form_id, {
|
|
|
+ [PRIMARY_KEY.head_id]: { value: null, display: null },
|
|
|
+ [PRIMARY_KEY.bill_no]: { value: null, display: null },
|
|
|
+ [FIELD.billStatus]: { value: STATUS.NOSTATE, display: '自由' },
|
|
|
+ [PRIMARY_KEY.vdef3]: { value: true, display: '是' },
|
|
|
+ [PRIMARY_KEY.vdef4]: { value: null, display: null },
|
|
|
+ [PRIMARY_KEY.vdef2]: { value: '1', display: null },
|
|
|
+ [PRIMARY_KEY.vdef10]: { value: '0', display: null }
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ props.cardTable.setColValue(CARD.table_code, PRIMARY_KEY.head_id, { value: null, display: null });
|
|
|
+ props.cardTable.setColValue(CARD.table_code, PRIMARY_KEY.body_id, { value: null, display: null });
|
|
|
+
|
|
|
+ var num = props.cardTable.getNumberOfRows(CARD.table_code, false);
|
|
|
+ var updateArray = new Array();
|
|
|
+ for (var i = 0; i < num; i++) {
|
|
|
+ updateArray.push({
|
|
|
+ index: i,
|
|
|
+ status: '2',//新增态
|
|
|
+ });
|
|
|
+ }
|
|
|
+ props.cardTable.setRowStatusByIndexs(CARD.table_code, updateArray);
|
|
|
+
|
|
|
+ props.setUrlParam({
|
|
|
+ id: null,
|
|
|
+ isCopy: false,
|
|
|
+ status: STATUS.add
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//卡片保存
|
|
|
+export function cardSave(props) {
|
|
|
+ return new Promise((resolve, rejected) => {
|
|
|
+ let flag = props.form.isCheckNow(CARD.form_id) && props.cardTable.checkTableRequired(CARD.table_code);
|
|
|
+ if (flag) {
|
|
|
+ let data = props.createMasterChildData(CARD.page_code, CARD.form_id, CARD.table_code, 'cardTable');
|
|
|
+ props.validateToSave(data, () => {
|
|
|
+
|
|
|
+ let status = props.getUrlParam(STATUS.status);
|
|
|
+ ajax({
|
|
|
+ url: REQUEST_URL.save,
|
|
|
+ data: data,
|
|
|
+ success: (res) => {
|
|
|
+ let { success, data } = res;
|
|
|
+ if (success) {
|
|
|
+ toast({ color: STATUS.success, content: props.json['96H10119-000004'] });/* 国际化处理: 保存成功*/
|
|
|
+
|
|
|
+ if (res.formulamsg && res.formulamsg instanceof Array && res.formulamsg.length > 0) {
|
|
|
+ props.dealFormulamsg(res.formulamsg);
|
|
|
+ }
|
|
|
+
|
|
|
+ let id = null;
|
|
|
+ if (res.data) {
|
|
|
+ if (res.data.head && res.data.head[CARD.form_id]) {
|
|
|
+ id = res.data.head[CARD.form_id].rows[0].values[PRIMARY_KEY.head_id].value;
|
|
|
+ props.form.setAllFormValue({ [CARD.form_id]: res.data.head[CARD.form_id] });
|
|
|
+ }
|
|
|
+ if (res.data.body && res.data.body[CARD.table_code]) {
|
|
|
+ props.cardTable.setTableData(CARD.table_code, res.data.body[CARD.table_code]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ props.setUrlParam({
|
|
|
+ id,
|
|
|
+ status: STATUS.browse
|
|
|
+ });
|
|
|
+
|
|
|
+ // 缓存
|
|
|
+ if (status === STATUS.add) {
|
|
|
+ addCache(id, data, CARD.form_id, DATASOURCE);
|
|
|
+ } else {
|
|
|
+ updateCache(PRIMARY_KEY.head_id, id, data, CARD.form_id, DATASOURCE);
|
|
|
+ }
|
|
|
+
|
|
|
+ setByStatus(props);
|
|
|
+
|
|
|
+ resolve(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }, { [CARD.table_code]: 'cardTable' });
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//卡片修改
|
|
|
+export function cardUpdate(props) {
|
|
|
+ debugger;
|
|
|
+ props.setUrlParam({ status: STATUS.edit });
|
|
|
+
|
|
|
+ setByStatus(props);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//变更 add by zth
|
|
|
+export function cardModify(props) {
|
|
|
+ let pk = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value || props.getUrlParam(PRIMARY_KEY.id);
|
|
|
+ props.setUrlParam({ status: STATUS.edit });
|
|
|
+ let vdef2 = props.form.getFormItemsValue(CARD.form_id, 'vdef2').value ;//历史版本
|
|
|
+ debugger;
|
|
|
+ if(!vdef2){
|
|
|
+ debugger;
|
|
|
+ vdef2=parseInt(2);
|
|
|
+ }else{
|
|
|
+ vdef2 = parseInt(vdef2)+1;
|
|
|
+ }
|
|
|
+ debugger;
|
|
|
+ props.form.setFormItemsValue(CARD.form_id, {
|
|
|
+ 'vdef3': { value: true, display: null },//设置最新版本为:是
|
|
|
+ 'vdef4': { value: false, display: null },//设置是否注销为:否
|
|
|
+ 'vdef2': { value: vdef2.toString(), display: null },//设置历史版本
|
|
|
+ 'vdef10': { value: '3', display: null },//设置变更状态
|
|
|
+ });
|
|
|
+ setByStatus(props);
|
|
|
+
|
|
|
+ // ajax({
|
|
|
+ // url: REQUEST_URL.queryCard,
|
|
|
+ // data: {
|
|
|
+ // pk: id,
|
|
|
+ // pagecode: CARD.page_code
|
|
|
+ // },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // });
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//卡片修改
|
|
|
+export function cardCopy(props) {
|
|
|
+ props.setUrlParam({ isCopy: true });
|
|
|
+ copyClear(props);
|
|
|
+ setByStatus(props);
|
|
|
+}
|
|
|
+
|
|
|
+//卡片删除
|
|
|
+export function cardDelete(props) {
|
|
|
+ debugger;
|
|
|
+ let pk = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value || props.getUrlParam(PRIMARY_KEY.id);
|
|
|
+ let ts = props.form.getFormItemsValue(CARD.form_id, FIELD.ts) && props.form.getFormItemsValue(CARD.form_id, FIELD.ts).value;
|
|
|
+ let pkMapTs = new Map();
|
|
|
+ //主键与tsMap
|
|
|
+ if (pk && ts) {
|
|
|
+ pkMapTs.set(pk, ts);
|
|
|
+ }
|
|
|
+ let data = { pks: [pk], pkMapTs };
|
|
|
+ ajax({
|
|
|
+ url: REQUEST_URL.delete,
|
|
|
+ data: data,
|
|
|
+ success: (res) => {
|
|
|
+ if (res.success) {
|
|
|
+ toast({ color: STATUS.success, content: props.json['96H10119-000005'] });/* 国际化处理: 删除成功*/
|
|
|
+
|
|
|
+ // 获取下一条数据的id
|
|
|
+ let nextId = getNextId(pk, DATASOURCE);
|
|
|
+ //删除缓存
|
|
|
+ deleteCacheById(PRIMARY_KEY.head_id, pk, DATASOURCE);
|
|
|
+ let lastId = nextId ? nextId : null;
|
|
|
+ props.setUrlParam({ status: STATUS.browse, id: lastId });
|
|
|
+ if (lastId) {
|
|
|
+ getCardData(props, lastId);
|
|
|
+ } else {// 删除的是最后一个的操作
|
|
|
+ clearAll(props);
|
|
|
+ setByStatus(props);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 卡片详情
|
|
|
+ * @param {*} id 单据id
|
|
|
+ * @param {*} isRefresh 是否刷新按钮,是的话不取缓存数据,直接调取接口,并addCache, 默认否
|
|
|
+ */
|
|
|
+export function getCardData(props, id, isRefresh = false, callBack) {
|
|
|
+ debugger;
|
|
|
+ clearAll(props);
|
|
|
+ if (!isRefresh) {
|
|
|
+ let cardData = getCacheById(id, DATASOURCE);
|
|
|
+ if (cardData) {//有缓存
|
|
|
+ cardData.head && props.form.setAllFormValue({ [CARD.form_id]: cardData.head[CARD.form_id] });
|
|
|
+ cardData.body && props.cardTable.setTableData(CARD.table_code, cardData.body[CARD.table_code]);
|
|
|
+ setByStatus(props);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ajax({
|
|
|
+ url: REQUEST_URL.queryCard,
|
|
|
+ data: {
|
|
|
+ pk: id,
|
|
|
+ pagecode: CARD.page_code
|
|
|
+ },
|
|
|
+ success: (res) => {
|
|
|
+ let { success, data } = res;
|
|
|
+ if (success) {
|
|
|
+ if (data && data.head) {
|
|
|
+ props.form.setAllFormValue({ [CARD.form_id]: data.head[CARD.form_id] });
|
|
|
+ }
|
|
|
+ if (data && data.body) {
|
|
|
+ props.cardTable.setTableData(CARD.table_code, data.body[CARD.table_code]);
|
|
|
+ }
|
|
|
+ // 更新缓存
|
|
|
+ updateCache(PRIMARY_KEY.head_id, id, data, CARD.form_id, DATASOURCE);
|
|
|
+ callBack && callBack(props);
|
|
|
+ setByStatus(props);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: (res) => {
|
|
|
+ toast({ color: STATUS.danger, content: res.message });
|
|
|
+ clearAll(props);
|
|
|
+ setByStatus(props);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//卡片取消
|
|
|
+export function cardCancel(props) {
|
|
|
+ let id = props.getUrlParam(PRIMARY_KEY.id);
|
|
|
+ props.setUrlParam({ status: STATUS.browse });
|
|
|
+ if (id) { //有id切换编辑态
|
|
|
+ props.form.cancel(CARD.form_id);
|
|
|
+ props.cardTable.resetTableData(CARD.table_code);
|
|
|
+ getCardData(props, id);
|
|
|
+ } else { //没有id查缓存中最后一条数据
|
|
|
+ let currentLastId = getCurrentLastId(DATASOURCE);
|
|
|
+ let lastId = currentLastId ? currentLastId : null;
|
|
|
+ props.setUrlParam({ id: lastId });
|
|
|
+ if (lastId) {
|
|
|
+ getCardData(props, lastId);
|
|
|
+ } else {
|
|
|
+ clearAll(props);
|
|
|
+ setByStatus(props);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//卡片注销
|
|
|
+export function cardLogOut(props) {
|
|
|
+ debugger;
|
|
|
+ let pk = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value || props.getUrlParam(PRIMARY_KEY.id);
|
|
|
+ let ts = props.form.getFormItemsValue(CARD.form_id, FIELD.ts) && props.form.getFormItemsValue(CARD.form_id, FIELD.ts).value;
|
|
|
+ let pkMapTs = new Map();
|
|
|
+ //主键与tsMap
|
|
|
+ if (pk && ts) {
|
|
|
+ pkMapTs.set(pk, ts);
|
|
|
+ }
|
|
|
+ let data = { pks: [pk], pkMapTs };
|
|
|
+ ajax({
|
|
|
+ url: REQUEST_URL.logout,
|
|
|
+ data: data,
|
|
|
+ success: (res) => {
|
|
|
+ debugger;
|
|
|
+ if (res.success) {
|
|
|
+ toast({ color: STATUS.success, content: "注销成功" });/* 国际化处理: 注销成功*/
|
|
|
+ //删除缓存
|
|
|
+ deleteCacheById(PRIMARY_KEY.head_id, pk, DATASOURCE);
|
|
|
+ clearAll(props);
|
|
|
+ setByStatus(props);
|
|
|
+ cardRefresh(props);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//卡片刷新
|
|
|
+export function cardRefresh(props) {
|
|
|
+ let id = props.getUrlParam(PRIMARY_KEY.id);
|
|
|
+ getCardData(props, id, true);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 卡片分页
|
|
|
+ * @param {*} props 页面内置对象
|
|
|
+ * @param {*} pk 下一页的pk
|
|
|
+ */
|
|
|
+export function pageClick(props, id) {
|
|
|
+ props.setUrlParam({ status: STATUS.browse, id });
|
|
|
+ getCardData(props, id);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//卡片附件
|
|
|
+export function cardAttachment(props) {
|
|
|
+ let billId = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value;
|
|
|
+ let billNo = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.bill_no) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.bill_no).value;
|
|
|
+ this.setState({
|
|
|
+ showUploader: !this.state.showUploader,
|
|
|
+ billInfo: { billId, billNo }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//卡片单据追溯
|
|
|
+export function cardBillTrack(props) {
|
|
|
+ let billId = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value;
|
|
|
+ this.setState({
|
|
|
+ showBillTrack: true,
|
|
|
+ billTrackBillId: billId,
|
|
|
+ billTrackBillType: BILL_TYPE_CODE
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//卡片联查审批详情
|
|
|
+export function cardLinkApprove(props) {
|
|
|
+ let billId = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value;
|
|
|
+ this.setState({
|
|
|
+ showApproveDetail: true,
|
|
|
+ billId: billId
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//卡片提交
|
|
|
+export function cardCommit(props, data) {
|
|
|
+ if (!data) {
|
|
|
+ let pk = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value;
|
|
|
+ let ts = props.form.getFormItemsValue(CARD.form_id, FIELD.ts) && props.form.getFormItemsValue(CARD.form_id, FIELD.ts).value;
|
|
|
+ let pkMapTs = new Map();
|
|
|
+ //主键与tsMap
|
|
|
+ if (pk && ts) {
|
|
|
+ pkMapTs.set(pk, ts);
|
|
|
+ }
|
|
|
+ data = { pks: [pk], pkMapTs };
|
|
|
+ }
|
|
|
+ ajax({
|
|
|
+ url: REQUEST_URL.commit,
|
|
|
+ data: data,
|
|
|
+ success: (res) => {
|
|
|
+ if (res.success) { //成功
|
|
|
+ if (res.data && res.data.workflow && (res.data.workflow == 'approveflow' || res.data.workflow == 'workflow')) {
|
|
|
+ this.setState({
|
|
|
+ compositeData: res.data,
|
|
|
+ compositeDisplay: true,
|
|
|
+ curPk: data.pks
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ cardRefresh(props);
|
|
|
+ }
|
|
|
+ } else { //失败
|
|
|
+ toast({ color: STATUS.warning, content: props.json['96H10119-000015'] });/* 国际化处理: 提交失败*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//卡片收回
|
|
|
+export function cardUnCommit(props) {
|
|
|
+ let pk = props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id) && props.form.getFormItemsValue(CARD.form_id, PRIMARY_KEY.head_id).value;
|
|
|
+ let ts = props.form.getFormItemsValue(CARD.form_id, FIELD.ts) && props.form.getFormItemsValue(CARD.form_id, FIELD.ts).value;
|
|
|
+ let pkMapTs = new Map();
|
|
|
+ //主键与tsMap
|
|
|
+ if (pk && ts) {
|
|
|
+ pkMapTs.set(pk, ts);
|
|
|
+ }
|
|
|
+ let data = { pks: [pk], pkMapTs };
|
|
|
+ ajax({
|
|
|
+ url: REQUEST_URL.unCommit,
|
|
|
+ data: data,
|
|
|
+ success: (res) => {
|
|
|
+ if (res.success) { //成功
|
|
|
+ cardRefresh(props);
|
|
|
+ } else { //失败
|
|
|
+ toast({ color: STATUS.warning, content: props.json['96H10119-000017'] });/* 国际化处理: 收回失败*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|