|
|
@@ -35,48 +35,91 @@
|
|
|
style="width: calc(100% - 80px)"
|
|
|
></el-input>
|
|
|
</div>
|
|
|
-
|
|
|
</div>
|
|
|
</template>
|
|
|
<!-- 客户名称 -->
|
|
|
- <template v-slot:eom_contact="scope">
|
|
|
- <div class="eom_contact">
|
|
|
- <el-input
|
|
|
- v-model="scope.model.eom_contact.name"
|
|
|
- style="width: 100%"
|
|
|
- ></el-input>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
-
|
|
|
- <!-- 差旅 -->
|
|
|
- <template v-slot:blank_business_component="scope">
|
|
|
- <businessComponent ref="blank_business_component" id="blank_business_component" :generateForm="$refs.generateForm" :info="scope.model" :view="view"></businessComponent>
|
|
|
- </template>
|
|
|
+ <template v-slot:eom_contact="scope">
|
|
|
+ <div class="eom_contact">
|
|
|
+ <el-input
|
|
|
+ v-model="scope.model.eom_contact.name"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- 关联工单 -->
|
|
|
+ <template v-slot:manage_workorder="scope">
|
|
|
+ <div class="manage_workorder">
|
|
|
+ <el-input
|
|
|
+ v-model="scope.model.manage_workorder.code"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- 差旅 -->
|
|
|
+ <template v-slot:blank_business_component="scope">
|
|
|
+ <businessComponent
|
|
|
+ ref="blank_business_component"
|
|
|
+ id="blank_business_component"
|
|
|
+ :generateForm="$refs.generateForm"
|
|
|
+ :info="scope.model"
|
|
|
+ :view="view"
|
|
|
+ ></businessComponent>
|
|
|
+ </template>
|
|
|
|
|
|
- <!-- 印章使用 -->
|
|
|
- <template v-slot:blank_use_seal="scope">
|
|
|
- <useSealComponent ref="blank_use_seal" id="blank_use_seal" :generateForm="$refs.generateForm" :info="scope.model" :view="view"></useSealComponent>
|
|
|
- </template>
|
|
|
+ <!-- 印章使用 -->
|
|
|
+ <template v-slot:blank_use_seal="scope">
|
|
|
+ <useSealComponent
|
|
|
+ ref="blank_use_seal"
|
|
|
+ id="blank_use_seal"
|
|
|
+ :generateForm="$refs.generateForm"
|
|
|
+ :info="scope.model"
|
|
|
+ :view="view"
|
|
|
+ ></useSealComponent>
|
|
|
+ </template>
|
|
|
|
|
|
- <!-- 资质使用 -->
|
|
|
- <template v-slot:blank_use_qualification="scope">
|
|
|
- <useQualificationComponent ref="blank_use_qualification" id="blank_use_qualification" :generateForm="$refs.generateForm" :info="scope.model" :view="view"></useQualificationComponent>
|
|
|
- </template>
|
|
|
+ <!-- 资质使用 -->
|
|
|
+ <template v-slot:blank_use_qualification="scope">
|
|
|
+ <useQualificationComponent
|
|
|
+ ref="blank_use_qualification"
|
|
|
+ id="blank_use_qualification"
|
|
|
+ :generateForm="$refs.generateForm"
|
|
|
+ :info="scope.model"
|
|
|
+ :view="view"
|
|
|
+ ></useQualificationComponent>
|
|
|
+ </template>
|
|
|
|
|
|
- <!-- 产品规格 -->
|
|
|
- <template v-slot:blank_product_specification="scope">
|
|
|
- <productSpecificationComponent ref="blank_product_specification" id="blank_product_specification" :generateForm="$refs.generateForm" :info="scope.model" :view="view"></productSpecificationComponent>
|
|
|
- </template>
|
|
|
+ <!-- 产品规格 -->
|
|
|
+ <template v-slot:blank_product_specification="scope">
|
|
|
+ <productSpecificationComponent
|
|
|
+ ref="blank_product_specification"
|
|
|
+ id="blank_product_specification"
|
|
|
+ :generateForm="$refs.generateForm"
|
|
|
+ :info="scope.model"
|
|
|
+ :view="view"
|
|
|
+ ></productSpecificationComponent>
|
|
|
+ </template>
|
|
|
|
|
|
- <!-- 事件 -->
|
|
|
- <template v-slot:blank_event_component="scope">
|
|
|
- <eventComponent ref="blank_event_component" id="blank_event_component" :generateForm="$refs.generateForm" :info="scope.model" :view="view"></eventComponent>
|
|
|
- </template>
|
|
|
+ <!-- 事件 -->
|
|
|
+ <template v-slot:blank_event_component="scope">
|
|
|
+ <eventComponent
|
|
|
+ ref="blank_event_component"
|
|
|
+ id="blank_event_component"
|
|
|
+ :generateForm="$refs.generateForm"
|
|
|
+ :info="scope.model"
|
|
|
+ :view="view"
|
|
|
+ ></eventComponent>
|
|
|
+ </template>
|
|
|
|
|
|
- <!-- 补发 -->
|
|
|
- <template v-slot:blank_reissue_component="scope">
|
|
|
- <reissueComponent ref="blank_reissue_component" id="blank_reissue_component" :generateForm="$refs.generateForm" :info="scope.model" :view="view"></reissueComponent>
|
|
|
- </template>
|
|
|
+ <!-- 补发 -->
|
|
|
+ <template v-slot:blank_reissue_component="scope">
|
|
|
+ <reissueComponent
|
|
|
+ ref="blank_reissue_component"
|
|
|
+ id="blank_reissue_component"
|
|
|
+ :generateForm="$refs.generateForm"
|
|
|
+ :info="scope.model"
|
|
|
+ :view="view"
|
|
|
+ ></reissueComponent>
|
|
|
+ </template>
|
|
|
</fm-generate-form>
|
|
|
|
|
|
<outboundXTBG
|
|
|
@@ -144,165 +187,174 @@
|
|
|
</ele-modal>
|
|
|
</template>
|
|
|
<script>
|
|
|
- import Parser from '@/components/FormGenerator/components/parser/Parser.vue';
|
|
|
- import outboundXTBG from '@/views/bpm/outgoingManagement/outboundXTBG.vue';
|
|
|
- import {
|
|
|
- approveTaskWithVariables,
|
|
|
- cancelTask,
|
|
|
- rejectTask
|
|
|
- } from '@/api/bpm/task';
|
|
|
- import { getToken } from '@/utils/token-util';
|
|
|
- import storageApi from '@/api/warehouseManagement';
|
|
|
+import Parser from '@/components/FormGenerator/components/parser/Parser.vue';
|
|
|
+import outboundXTBG from '@/views/bpm/outgoingManagement/outboundXTBG.vue';
|
|
|
+import {
|
|
|
+ approveTaskWithVariables,
|
|
|
+ cancelTask,
|
|
|
+ rejectTask
|
|
|
+} from '@/api/bpm/task';
|
|
|
+import { getToken } from '@/utils/token-util';
|
|
|
+import storageApi from '@/api/warehouseManagement';
|
|
|
|
|
|
- import businessComponent from '@/BIZComponents/processSubmitDialog/components/businessComponent.vue';
|
|
|
- import useSealComponent from '@/BIZComponents/processSubmitDialog/components/useSealComponent.vue';
|
|
|
- import useQualificationComponent from '@/BIZComponents/processSubmitDialog/components/useQualificationComponent.vue';
|
|
|
- import productSpecificationComponent from '@/BIZComponents/processSubmitDialog/components/productSpecificationComponent.vue';
|
|
|
- import eventComponent from '@/BIZComponents/processSubmitDialog/components/eventComponent.vue';
|
|
|
- import reissueComponent from '@/BIZComponents/processSubmitDialog/components/reissueComponent.vue';
|
|
|
+import businessComponent from '@/BIZComponents/processSubmitDialog/components/businessComponent.vue';
|
|
|
+import useSealComponent from '@/BIZComponents/processSubmitDialog/components/useSealComponent.vue';
|
|
|
+import useQualificationComponent from '@/BIZComponents/processSubmitDialog/components/useQualificationComponent.vue';
|
|
|
+import productSpecificationComponent from '@/BIZComponents/processSubmitDialog/components/productSpecificationComponent.vue';
|
|
|
+import eventComponent from '@/BIZComponents/processSubmitDialog/components/eventComponent.vue';
|
|
|
+import reissueComponent from '@/BIZComponents/processSubmitDialog/components/reissueComponent.vue';
|
|
|
|
|
|
- export default {
|
|
|
- name: 'formParserDialog',
|
|
|
- components: { Parser, outboundXTBG },
|
|
|
- components: {businessComponent, useSealComponent, useQualificationComponent, productSpecificationComponent, eventComponent, reissueComponent},
|
|
|
- props: {
|
|
|
- businessId: {
|
|
|
- default: ''
|
|
|
- },
|
|
|
- formParserDialogFlag: {
|
|
|
- type: Boolean,
|
|
|
- default: false
|
|
|
- }
|
|
|
+export default {
|
|
|
+ name: 'formParserDialog',
|
|
|
+ components: { Parser, outboundXTBG },
|
|
|
+ components: {
|
|
|
+ businessComponent,
|
|
|
+ useSealComponent,
|
|
|
+ useQualificationComponent,
|
|
|
+ productSpecificationComponent,
|
|
|
+ eventComponent,
|
|
|
+ reissueComponent
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ businessId: {
|
|
|
+ default: ''
|
|
|
},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- form: {},
|
|
|
- index: '',
|
|
|
- jsonData: {},
|
|
|
- width: '30%',
|
|
|
- isSaveLoading: false
|
|
|
- };
|
|
|
+ formParserDialogFlag: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ form: {},
|
|
|
+ index: '',
|
|
|
+ jsonData: {},
|
|
|
+ width: '30%',
|
|
|
+ isSaveLoading: false
|
|
|
+ };
|
|
|
+ },
|
|
|
+ modelWidth() {
|
|
|
+ let width =
|
|
|
+ this.jsonData.config?.platform && this.jsonData.config.platform === 'pc'
|
|
|
+ ? 1100
|
|
|
+ : 450;
|
|
|
+ if (this.form?.taskDefinitionKey == 'CGYSP') {
|
|
|
+ return (width = '70%');
|
|
|
+ }
|
|
|
+ return width + 'px';
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ open(row) {
|
|
|
+ this.form = _.cloneDeep(row);
|
|
|
+ console.log(this.form.taskDefinitionKey, 'this.form.taskDefinitionKey');
|
|
|
+
|
|
|
+ this.jsonData = JSON.parse(this.form.formJson.makingJson);
|
|
|
+ this.jsonData.config.dataSource &&
|
|
|
+ this.jsonData.config.dataSource.forEach((item) => {
|
|
|
+ item.headers = {
|
|
|
+ Authorization: getToken()
|
|
|
+ };
|
|
|
+ // item.url = item.url && item.url.replace('/api', this.APIUrl);
|
|
|
+ });
|
|
|
},
|
|
|
- modelWidth() {
|
|
|
- let width = this.jsonData.config?.platform && this.jsonData.config.platform === 'pc' ? 1100 : 450;
|
|
|
- if (this.form?.taskDefinitionKey == 'CGYSP') {
|
|
|
- return width = '70%';
|
|
|
- }
|
|
|
- return width + 'px'
|
|
|
+ cancel() {
|
|
|
+ this.$emit('update:formParserDialogFlag', false);
|
|
|
+ },
|
|
|
+ async handleAudit(status) {
|
|
|
+ await this._approveTaskWithVariables(status);
|
|
|
},
|
|
|
- methods: {
|
|
|
- open(row) {
|
|
|
- this.form = _.cloneDeep(row);
|
|
|
- console.log(this.form.taskDefinitionKey, 'this.form.taskDefinitionKey');
|
|
|
-
|
|
|
- this.jsonData = JSON.parse(this.form.formJson.makingJson);
|
|
|
- this.jsonData.config.dataSource &&
|
|
|
- this.jsonData.config.dataSource.forEach((item) => {
|
|
|
- item.headers = {
|
|
|
- Authorization: getToken()
|
|
|
- };
|
|
|
- // item.url = item.url && item.url.replace('/api', this.APIUrl);
|
|
|
- });
|
|
|
- },
|
|
|
- cancel() {
|
|
|
- this.$emit('update:formParserDialogFlag', false);
|
|
|
- },
|
|
|
- async handleAudit(status) {
|
|
|
- await this._approveTaskWithVariables(status);
|
|
|
- },
|
|
|
-
|
|
|
- async storemanApprove(status) {
|
|
|
- let storageData = await this.$refs.outboundXTBGRef.getReturnStorage();
|
|
|
- console.log(storageData);
|
|
|
-
|
|
|
- // 出库来源isSkip 0-正常 1-外部(外部跳过内部审核流程)
|
|
|
- storageData.isSkip = 1;
|
|
|
- storageData.isMes = 1;
|
|
|
- try {
|
|
|
- this.isSaveLoading = true;
|
|
|
- await storageApi.outStorage(storageData);
|
|
|
- approveTaskWithVariables({
|
|
|
- id: this.form.id,
|
|
|
- reason: this.form.reason,
|
|
|
- businessId: this.businessId,
|
|
|
- variables: {
|
|
|
- pass: true
|
|
|
- }
|
|
|
- }).then((res) => {
|
|
|
- if (res.data.code != '-1') {
|
|
|
-
|
|
|
- this.$message.success(`出库成功!`);
|
|
|
- this.$emit('reload');
|
|
|
- this.cancel();
|
|
|
- }
|
|
|
- this.isSaveLoading = false;
|
|
|
- });
|
|
|
- } catch (error) {
|
|
|
- this.isSaveLoading = false;
|
|
|
- console.error('出库失败:', error);
|
|
|
- }
|
|
|
- },
|
|
|
|
|
|
- async _approveTaskWithVariables(status) {
|
|
|
- let variables = {
|
|
|
- pass: !!status
|
|
|
- };
|
|
|
- let API = !!status ? approveTaskWithVariables : rejectTask;
|
|
|
+ async storemanApprove(status) {
|
|
|
+ let storageData = await this.$refs.outboundXTBGRef.getReturnStorage();
|
|
|
+ console.log(storageData);
|
|
|
|
|
|
- API({
|
|
|
+ // 出库来源isSkip 0-正常 1-外部(外部跳过内部审核流程)
|
|
|
+ storageData.isSkip = 1;
|
|
|
+ storageData.isMes = 1;
|
|
|
+ try {
|
|
|
+ this.isSaveLoading = true;
|
|
|
+ await storageApi.outStorage(storageData);
|
|
|
+ approveTaskWithVariables({
|
|
|
id: this.form.id,
|
|
|
reason: this.form.reason,
|
|
|
businessId: this.businessId,
|
|
|
- variables
|
|
|
+ variables: {
|
|
|
+ pass: true
|
|
|
+ }
|
|
|
}).then((res) => {
|
|
|
if (res.data.code != '-1') {
|
|
|
- let params = {
|
|
|
- status,
|
|
|
- title: status === 0 ? '驳回' : ''
|
|
|
- };
|
|
|
- this.$message.success(`审批${params.title}成功!`);
|
|
|
+ this.$message.success(`出库成功!`);
|
|
|
this.$emit('reload');
|
|
|
this.cancel();
|
|
|
}
|
|
|
+ this.isSaveLoading = false;
|
|
|
});
|
|
|
- },
|
|
|
+ } catch (error) {
|
|
|
+ this.isSaveLoading = false;
|
|
|
+ console.error('出库失败:', error);
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- //更多
|
|
|
- handleCommand(command) {
|
|
|
- if (command === 'cancel') {
|
|
|
- this.$confirm('是否确认作废?', {
|
|
|
- type: 'warning',
|
|
|
- cancelButtonText: '取消',
|
|
|
- confirmButtonText: '确定'
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- cancelTask({
|
|
|
- taskId: this.form.id,
|
|
|
- id: this.form.processInstance.id,
|
|
|
- reason: this.form.reason
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.$emit('reload');
|
|
|
- this.cancel();
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- this.$message.error('流程作废失败');
|
|
|
- });
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
+ async _approveTaskWithVariables(status) {
|
|
|
+ let variables = {
|
|
|
+ pass: !!status
|
|
|
+ };
|
|
|
+ let API = !!status ? approveTaskWithVariables : rejectTask;
|
|
|
+
|
|
|
+ API({
|
|
|
+ id: this.form.id,
|
|
|
+ reason: this.form.reason,
|
|
|
+ businessId: this.businessId,
|
|
|
+ variables
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.data.code != '-1') {
|
|
|
+ let params = {
|
|
|
+ status,
|
|
|
+ title: status === 0 ? '驳回' : ''
|
|
|
+ };
|
|
|
+ this.$message.success(`审批${params.title}成功!`);
|
|
|
+ this.$emit('reload');
|
|
|
+ this.cancel();
|
|
|
}
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //更多
|
|
|
+ handleCommand(command) {
|
|
|
+ if (command === 'cancel') {
|
|
|
+ this.$confirm('是否确认作废?', {
|
|
|
+ type: 'warning',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ confirmButtonText: '确定'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ cancelTask({
|
|
|
+ taskId: this.form.id,
|
|
|
+ id: this.form.processInstance.id,
|
|
|
+ reason: this.form.reason
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.$emit('reload');
|
|
|
+ this.cancel();
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message.error('流程作废失败');
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
}
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
- .blank_adopzrdd {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- > span {
|
|
|
- display: inline-block;
|
|
|
- width: 80px;
|
|
|
- }
|
|
|
- margin-bottom: 10px;
|
|
|
+.blank_adopzrdd {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ > span {
|
|
|
+ display: inline-block;
|
|
|
+ width: 80px;
|
|
|
}
|
|
|
+ margin-bottom: 10px;
|
|
|
+}
|
|
|
</style>
|