|
|
@@ -47,7 +47,6 @@
|
|
|
trigger: 'change'
|
|
|
}"
|
|
|
>
|
|
|
- <!-- :disabled="workOrderDis" -->
|
|
|
<el-input
|
|
|
v-model="form.workOrderName"
|
|
|
:disabled="workOrderDis"
|
|
|
@@ -56,6 +55,32 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item
|
|
|
+ label="费用类别:"
|
|
|
+ prop="feeType"
|
|
|
+ :rules="{
|
|
|
+ required: true,
|
|
|
+ message: '请选择费用类别',
|
|
|
+ trigger: 'change'
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <el-select
|
|
|
+ v-model="form.feeType"
|
|
|
+ :disabled="type === 'view'"
|
|
|
+ placeholder="请选择费用类别"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in costTypeOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="原因">
|
|
|
<el-input
|
|
|
@@ -71,6 +96,7 @@
|
|
|
obtain="仓库"
|
|
|
ref="sparePartsRef"
|
|
|
:type="title == '详情' ? 'view' : 'edit'"
|
|
|
+ :hideFeeType="true"
|
|
|
></spareParts>
|
|
|
</el-form>
|
|
|
<bpmDetail
|
|
|
@@ -92,154 +118,161 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import bpmDetail from '@/views/bpm/processInstance/detail.vue';
|
|
|
- import workOrderList from '@/views/salesServiceManagement/accessory/components/workOrderList.vue';
|
|
|
- import spareParts from '@/views/salesServiceManagement/components/sparePartsList.vue';
|
|
|
- import {
|
|
|
- costSave,
|
|
|
- costUpdate,
|
|
|
- salesrealcostinfo,
|
|
|
- getSalesWorkOrderById
|
|
|
- } from '@/api/salesServiceManagement/index';
|
|
|
- export default {
|
|
|
- props: {},
|
|
|
- components: {
|
|
|
- workOrderList,
|
|
|
- spareParts,
|
|
|
- bpmDetail
|
|
|
- },
|
|
|
- computed: {
|
|
|
- workOrderDis() {
|
|
|
- console.log(this.source, 'this.source 33');
|
|
|
- if (this.source != 0) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- return this.type == 'view';
|
|
|
+import bpmDetail from '@/views/bpm/processInstance/detail.vue';
|
|
|
+import workOrderList from '@/views/salesServiceManagement/accessory/components/workOrderList.vue';
|
|
|
+import spareParts from '@/views/salesServiceManagement/components/sparePartsList.vue';
|
|
|
+import {
|
|
|
+ costSave,
|
|
|
+ costUpdate,
|
|
|
+ salesrealcostinfo,
|
|
|
+ getSalesWorkOrderById
|
|
|
+} from '@/api/salesServiceManagement/index';
|
|
|
+export default {
|
|
|
+ props: {},
|
|
|
+ components: {
|
|
|
+ workOrderList,
|
|
|
+ spareParts,
|
|
|
+ bpmDetail
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ workOrderDis() {
|
|
|
+ console.log(this.source, 'this.source 33');
|
|
|
+ if (this.source != 0) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return this.type == 'view';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: false,
|
|
|
+ title: '新增',
|
|
|
+ editRepairNotesDialog: false,
|
|
|
+ type: 'add',
|
|
|
+ form: {
|
|
|
+ remarks: '',
|
|
|
+ workOrderName: '',
|
|
|
+ feeType: ''
|
|
|
+ },
|
|
|
+ source: 0,
|
|
|
+ activeComp: 'main',
|
|
|
+ processInstanceId: '0',
|
|
|
+ tabOptions: [
|
|
|
+ { key: 'main', name: '费用详情' },
|
|
|
+ { key: 'bpm', name: '流程详情' }
|
|
|
+ ],
|
|
|
+ costTypeOptions: [
|
|
|
+ { label: '收入', value: '1' },
|
|
|
+ { label: '支出', value: '2' }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ init(row, type) {
|
|
|
+ this.editRepairNotesDialog = true;
|
|
|
+ this.type = type;
|
|
|
+ this.title = type == 'add' ? '新增' : type == 'edit' ? '编辑' : '详情';
|
|
|
+ if (row?.id) {
|
|
|
+ this.getDetail(row);
|
|
|
}
|
|
|
},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- loading: false,
|
|
|
- title: '新增',
|
|
|
- editRepairNotesDialog: false,
|
|
|
- type: 'add',
|
|
|
- form: {
|
|
|
- remarks: '',
|
|
|
- workOrderName: ''
|
|
|
- },
|
|
|
- source: 0,
|
|
|
- activeComp: 'main',
|
|
|
- processInstanceId:'0',
|
|
|
- tabOptions: [
|
|
|
- { key: 'main', name: '费用详情' },
|
|
|
- { key: 'bpm', name: '流程详情' }
|
|
|
- ]
|
|
|
+ async getDetail(data) {
|
|
|
+ const res = await salesrealcostinfo(data.id);
|
|
|
+ this.processInstanceId = res.processInstanceId;
|
|
|
+ console.log(res, 'res 3333');
|
|
|
+ this.$refs.sparePartsRef.setTableValue(res?.detailLst || []);
|
|
|
+ this.$set(this.form, 'workOrderName', res.workOrderName);
|
|
|
+ this.form.workOrderCode = res.workOrderCode;
|
|
|
+ this.form.workOrderId = res.workOrderId;
|
|
|
+ this.$set(this.form, 'remarks', res.remarks);
|
|
|
+ this.$set(this.form, 'feeType', res.feeType?.toString() || '');
|
|
|
+ this.form.id = data.id;
|
|
|
+ this.source = res.source || 0;
|
|
|
+ this.$set(this.form, 'code', res.code);
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.editRepairNotesDialog = false;
|
|
|
+ this.form = {
|
|
|
+ remarks: '',
|
|
|
+ workOrderName: '',
|
|
|
+ feeType:''
|
|
|
};
|
|
|
+ this.$refs.recyleFormRef.resetFields();
|
|
|
+ this.$refs.sparePartsRef.setTableValue([]);
|
|
|
+ this.source = 0;
|
|
|
+ this.$refs.workOrderListRef.current = {};
|
|
|
+ this.$refs.workOrderListRef.radio = null;
|
|
|
},
|
|
|
- methods: {
|
|
|
- init(row, type) {
|
|
|
- this.editRepairNotesDialog = true;
|
|
|
- this.type = type;
|
|
|
- this.title = type == 'add' ? '新增' : type == 'edit' ? '编辑' : '详情';
|
|
|
- if (row?.id) {
|
|
|
- this.getDetail(row);
|
|
|
- }
|
|
|
- },
|
|
|
- async getDetail(data) {
|
|
|
- const res = await salesrealcostinfo(data.id);
|
|
|
- this.processInstanceId = res.processInstanceId;
|
|
|
- console.log(res, 'res 3333');
|
|
|
- this.$refs.sparePartsRef.setTableValue(res?.detailLst || []);
|
|
|
- this.$set(this.form, 'workOrderName', res.workOrderName);
|
|
|
- this.form.workOrderCode = res.workOrderCode;
|
|
|
- this.form.workOrderId = res.workOrderId;
|
|
|
- this.$set(this.form, 'remarks', res.remarks);
|
|
|
- this.form.id = data.id;
|
|
|
- this.source = res.source || 0;
|
|
|
- this.$set(this.form, 'code', res.code);
|
|
|
- },
|
|
|
- handleClose() {
|
|
|
- this.editRepairNotesDialog = false;
|
|
|
- this.form = {
|
|
|
- remarks: '',
|
|
|
- workOrderName: ''
|
|
|
- };
|
|
|
- this.$refs.recyleFormRef.resetFields();
|
|
|
- this.$refs.sparePartsRef.setTableValue([]);
|
|
|
- this.source = 0;
|
|
|
- this.$refs.workOrderListRef.current = {};
|
|
|
- this.$refs.workOrderListRef.radio = null;
|
|
|
- },
|
|
|
- async save() {
|
|
|
- let detailLst = this.$refs.sparePartsRef.getTableValue() || [];
|
|
|
- let totalPrice = this.$refs.sparePartsRef.totalPrice || 0;
|
|
|
- if (detailLst.length == 0) {
|
|
|
- this.$message.warning('请至少添加一条费用清单');
|
|
|
- return;
|
|
|
- }
|
|
|
- this.$refs.recyleFormRef.validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- let data = {
|
|
|
- ...this.form,
|
|
|
- detailLst,
|
|
|
- totalPrice
|
|
|
- };
|
|
|
- try {
|
|
|
- this.loading = true;
|
|
|
- const requestName = this.type == 'add' ? costSave : costUpdate;
|
|
|
- const res = await requestName(data);
|
|
|
- this.loading = false;
|
|
|
- if (res) {
|
|
|
- this.$message.success('操作成功');
|
|
|
- this.handleClose();
|
|
|
- this.$emit('refresh');
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- this.loading = false;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 选择工单
|
|
|
- handHead() {
|
|
|
- if (this.type != 'view') {
|
|
|
+ async save() {
|
|
|
+ let detailLst = this.$refs.sparePartsRef.getTableValue() || [];
|
|
|
+ let totalPrice = this.$refs.sparePartsRef.totalPrice || 0;
|
|
|
+ if (detailLst.length == 0) {
|
|
|
+ this.$message.warning('请至少添加一条费用清单');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.$refs.recyleFormRef.validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
let data = {
|
|
|
- name: this.form.workOrderName,
|
|
|
- code: this.form.workOrderCode,
|
|
|
- id: this.form.workOrderId
|
|
|
+ ...this.form,
|
|
|
+ detailLst,
|
|
|
+ totalPrice
|
|
|
};
|
|
|
- this.$refs.workOrderListRef.open(data);
|
|
|
- }
|
|
|
- },
|
|
|
- handleTag(val) {
|
|
|
- this.activeComp = val;
|
|
|
- },
|
|
|
- async changeSelect(row) {
|
|
|
- if (row.id == this.form.workOrderId) {
|
|
|
- return;
|
|
|
+ try {
|
|
|
+ this.loading = true;
|
|
|
+ const requestName = this.type == 'add' ? costSave : costUpdate;
|
|
|
+ const res = await requestName(data);
|
|
|
+ this.loading = false;
|
|
|
+ if (res) {
|
|
|
+ this.$message.success('操作成功');
|
|
|
+ this.handleClose();
|
|
|
+ this.$emit('refresh');
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ this.loading = false;
|
|
|
+ }
|
|
|
}
|
|
|
- this.$set(this.form, 'workOrderName', row.name);
|
|
|
- this.$set(this.form, 'workOrderCode', row.code);
|
|
|
- this.form.workOrderId = row.id; // 工单id
|
|
|
- this.$refs.sparePartsRef.form.tableList = [];
|
|
|
- const res = await getSalesWorkOrderById(row.id);
|
|
|
- this.$refs.sparePartsRef.setTableValue(res.costListVOS || []);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 选择工单
|
|
|
+ handHead() {
|
|
|
+ if (this.type != 'view') {
|
|
|
+ let data = {
|
|
|
+ name: this.form.workOrderName,
|
|
|
+ code: this.form.workOrderCode,
|
|
|
+ id: this.form.workOrderId
|
|
|
+ };
|
|
|
+ this.$refs.workOrderListRef.open(data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleTag(val) {
|
|
|
+ this.activeComp = val;
|
|
|
+ },
|
|
|
+ async changeSelect(row) {
|
|
|
+ if (row.id == this.form.workOrderId) {
|
|
|
+ return;
|
|
|
}
|
|
|
+ this.$set(this.form, 'workOrderName', row.name);
|
|
|
+ this.$set(this.form, 'workOrderCode', row.code);
|
|
|
+ this.form.workOrderId = row.id; // 工单id
|
|
|
+ this.$refs.sparePartsRef.form.tableList = [];
|
|
|
+ const res = await getSalesWorkOrderById(row.id);
|
|
|
+ this.$refs.sparePartsRef.setTableValue(res.costListVOS || []);
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .device_name {
|
|
|
- .el-select-dropdown__wrap {
|
|
|
- .el-select-dropdown__item {
|
|
|
- padding: 0 !important;
|
|
|
- }
|
|
|
+.device_name {
|
|
|
+ .el-select-dropdown__wrap {
|
|
|
+ .el-select-dropdown__item {
|
|
|
+ padding: 0 !important;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- .option_ {
|
|
|
- width: 100%;
|
|
|
- padding: 0 20px;
|
|
|
- }
|
|
|
+ .option_ {
|
|
|
+ width: 100%;
|
|
|
+ padding: 0 20px;
|
|
|
}
|
|
|
+}
|
|
|
</style>
|