| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- <template>
- <a-page-header
- :title="Language.getNameTrl($i18n.locale, tab)"
- style="border-bottom: 1px solid rgb(235, 237, 240); padding: 0px;"
- />
- <div class="m-row clearfix">
- <div>
- <div
- v-if="tabFormFields && mModelData"
- :class="{
- 'form-inline': tab.tabFormView.multipleColumn,
- 'form-horizontal': !tab.tabFormView.multipleColumn,
- }"
- >
- <template
- v-for="fieldItem in tabFormFields" :key="
- 'FieldEditView_' +
- windowNo +
- '_' +
- tab.tabIndex +
- '_' +
- fieldItem.fieldName +
- '_' +
- fieldItem.entityFieldIndex
- "
- >
- <FieldEditView
- ref="fieldItem1" :class-name="tab.tabDataSource.className" :field="fieldItem"
- :model-data="mModelData" :window-no="windowNo" :tab-index="tab.tabIndex" :js-url="jsUrl"
- :is-chinese-english="curdWindow.isChineseEnglish" :multiple-column="tab.tabFormView.multipleColumn"
- @execute-callout="executeCallout(fieldItem)"
- />
- </template>
- </div>
- </div>
- </div>
- </template>
- <script setup>
- import Common from '../../common/Common';
- import FieldEditView from './TabFormFieldView.vue';
- import WindowClientUtil from '../../resource/dictionary/WindowClientUtil.js';
- import Language from '../../common/Language.js';
- import ProcessReportResource from '../../api/dic/ProcessReportResource.js';
- import { ref, reactive, defineEmits, defineProps, watch } from 'vue';
- import { debounce } from 'lodash';
- // 接受父组件传递的数据
- const props = defineProps({
- tab: {
- type: Object,
- default: ()=>{
- return {};
- },
- },
- parentModelData: {
- type: Object,
- default: ()=>{
- return {};
- },
- },
- curdWindow: {
- type: Object,
- default: ()=>{
- return {};
- },
- },
- windowNo: {
- type: String,
- default: null,
- },
- jsUrl: {
- type: String,
- default: null,
- },
-
- isChineseEnglish: {
- type: Boolean,
- default: false,
- },
- });
- const mModelData = ref({});
- const tabFormFields = ref([]);
- const emits = defineEmits([]);
- /**
- * 查询一对一页签数据
- */
- const getOneToOneTabData = function () {
- const params = {
- windowNo: props.windowNo,
- tabIndex: props.tab.tabIndex,
- parentId: props.parentModelData == undefined ? undefined : props.parentModelData.id,
- };
- $.ajax({
- url: Common.getApiURL('CurdWindowResource/oneToOneTabData'),
- async: false,
- dataType: 'json',
- type: 'post',
- data: JSON.stringify(params),
- contentType: 'application/json',
- beforeSend: function (request) {
- Common.addTokenToRequest(request);
- },
- success: function (data) {
- mModelData.value = data;
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- Common.processException(XMLHttpRequest, textStatus, errorThrown);
- },
- });
- };
- /**
- * 执行Callout
- */
- const executeCallout = function (fieldItem) {
- if (fieldItem.calloutProcessReportNo != null) {
- callout(fieldItem.calloutProcessReportNo);
- }
- };
- /**
- * callout
- * @param {[type]} calloutProcessReportNo [description]
- * @return {[type]} [description]
- */
- const callout = function (calloutProcessReportNo) {
- // 查询流程和报表的定义
- ProcessReportResource.uniqueByNo(calloutProcessReportNo).then(
- successData => {
- if (successData == null) {
- return;
- }
- // 执行服务端的脚本
- ProcessReportResource.runCallout(
- calloutProcessReportNo,
- mModelData.value,
- ).then(
- successData => {
- if (successData && successData.modelData) {
- mModelData.value = successData.modelData;
- }
- },
- errorData => {
- Common.processException(errorData);
- },
- );
- },
- errorData => {
- Common.processException(errorData);
- },
- );
- };
- /**
- * 延迟获取页面的数据
- */
- const debounceGetOneToOneTabData = debounce(() => {
- getOneToOneTabData();
- }, 1000);
- watch(
- () => [props.windowNo, props.tab, props.parentModelData],
- (newValue, oldValue) => {
- debounceGetOneToOneTabData();
- },
- { immediate: true },
- );
- watch(
- () => props.tab,
- (newValue, oldValue) => {
- tabFormFields.value = WindowClientUtil.getDetailField(newValue);
- console.log(tabFormFields.value);
- },
- { immediate: true },
- );
- </script>
- <style scoped></style>
|