Browse Source

完善维修单

master
yunuo970428 10 months ago
parent
commit
c846d463a3
  1. 15
      yxt-as-ui/src/api/operation/repairbill.js
  2. 2
      yxt-as-ui/src/router/index.js
  3. 6
      yxt-as-ui/src/views/operation/repairbill/repairbill.vue
  4. 520
      yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue
  5. 8
      yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue
  6. 48
      yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue
  7. 48
      yxt-as-ui/src/views/operation/repairbill/repairbillByMaintain.vue
  8. 48
      yxt-as-ui/src/views/operation/repairbill/repairbillBySendWork.vue
  9. 48
      yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue
  10. 85
      yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue

15
yxt-as-ui/src/api/operation/repairbill.js

@ -75,11 +75,12 @@ export default {
}) })
}, },
// 打印结算单 // 打印结算单
printSettle: function(data) { printSettlement: function(data) {
return request({ return request({
url: '/as/v1/AsBusrepairBill/printSettle', url: '/as/v1/AsBusrepairBill/printSettlement',
method: 'post', method: 'post',
params: data data: data,
headers: { 'Content-Type': 'application/json' }
}) })
}, },
// 确认工时费比例初始化 // 确认工时费比例初始化
@ -99,5 +100,13 @@ export default {
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
},
// 根据客户sid获取对应的对接人信息
getListByCustomerSid: function(data) {
return request({
url: '/crm/v1/crmdockingpeople/getListByCustomerSid',
method: 'get',
params: data
})
} }
} }

2
yxt-as-ui/src/router/index.js

@ -435,7 +435,7 @@ export const constantRoutes = [{
path: '/filing/maintenanceEnterprise', path: '/filing/maintenanceEnterprise',
component: () => import('@/views/client/filing/maintenanceEnterprise.vue'), component: () => import('@/views/client/filing/maintenanceEnterprise.vue'),
name: 'MaintenanceEnterprise', name: 'MaintenanceEnterprise',
meta: { title: '定点企业备案', noCache: true } meta: { title: '欠款月结客户备案', noCache: true }
}, },
{ {
path: '/customerunit/customerunit', path: '/customerunit/customerunit',

6
yxt-as-ui/src/views/operation/repairbill/repairbill.vue

@ -26,7 +26,7 @@
<span style="padding: 0 8px"></span> <span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker> <el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单类型"> <el-form-item label="维修单类型">
<el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable> <el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option> </el-option>
@ -92,7 +92,7 @@
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange"> <el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/> <el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/> <el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="单据编号" align="center" width="130"> <el-table-column label="单据编号" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span> <span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
</template> </template>
@ -102,7 +102,7 @@
<el-table-column prop="dept" label="制单部门" align="center" width="120" /> <el-table-column prop="dept" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" /> <el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" /> <el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="billType" label="单类型" align="center" width="120" /> <el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="科目" align="center" width="100" /> <el-table-column prop="subject" label="科目" align="center" width="100" />
<el-table-column prop="entryTime" label="进厂时间" align="center" width="160" /> <el-table-column prop="entryTime" label="进厂时间" align="center" width="160" />
<el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" /> <el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" />

520
yxt-as-ui/src/views/operation/repairbill/repairbillAdd.vue

@ -4,12 +4,11 @@
<div class="tab-header webtop"> <div class="tab-header webtop">
<div>{{ viewTitle }}</div> <div>{{ viewTitle }}</div>
<div> <div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="selectCustomer()" v-show="formobj.nodeName == '登记'">选择客户</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()" v-show="formobj.nodeName !== '结算'">提交</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()" v-show="formobj.nodeName !== '结算'">提交</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="toSendBack" v-show="formobj.nodeName !== '结算' && formobj.nodeName !== '登记' && formobj.nodeName !== '出厂'">退回</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="toSendBack" v-show="formobj.nodeName !== '登记'">退回</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="confirmCLF()" v-show="formobj.nodeName == '结算' && formobj.subject == '保内'">确认材料费</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="confirmCLF()" v-show="formobj.nodeName == '结算' && formobj.subject == '保内'">确认材料费</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="toPrintSettle()" v-show="formobj.nodeName == '结算' && formobj.subject == '保外'">打印结算单</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="toPrintSettle()" v-show="formobj.nodeName == '结算'">打印结算单</el-button>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="settleAccounts()" v-show="formobj.nodeName == '结算'">结算</el-button> <el-button type="primary" size="small" :disabled="submitdisabled" @click="settleAccounts()" v-show="formobj.nodeName == '结算'">结算</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> <el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div> </div>
@ -32,9 +31,9 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>单类型</div> <div class="span-sty"><span class="icon">*</span>维修单类型</div>
<el-form-item prop="billType"> <el-form-item prop="billType">
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.billType" placeholder="请选择" @change="billTypeChange" clearable filterable> <el-select class="addinputInfo" v-model="formobj.billType" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" placeholder="请选择" @change="billTypeChange" clearable filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -42,7 +41,7 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>科目</div> <div class="span-sty"><span class="icon">*</span>科目</div>
<el-form-item prop="subject"> <el-form-item prop="subject">
<el-select class="addinputInfo" :disabled="formobj.sitemVos.length > 0 || formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.subject" placeholder="请选择" @change="changeSubject" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.sitemVos.length > 0 || formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.subject" placeholder="请选择" @change="changeSubject" clearable filterable>
<el-option v-for="item in subject_list" :key="item.subjectSid" :label="item.subject" :value="item.subject"></el-option> <el-option v-for="item in subject_list" :key="item.subjectSid" :label="item.subject" :value="item.subject"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -50,7 +49,7 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">索赔厂家</div> <div class="span-sty">索赔厂家</div>
<el-form-item> <el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.claimManufacturer" placeholder="请选择" @change="changeClaimManufacturer" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.claimManufacturer" placeholder="请选择" @change="changeClaimManufacturer" clearable filterable>
<el-option v-for="item in claimManufacturer_list" :key="item.sid" :label="item.claiManuName" :value="item.claiManuName"></el-option> <el-option v-for="item in claimManufacturer_list" :key="item.sid" :label="item.claiManuName" :value="item.claiManuName"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -60,26 +59,26 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>是否外出</div> <div class="span-sty"><span class="icon">*</span>是否外出</div>
<el-form-item prop="isGoOut"> <el-form-item prop="isGoOut">
<el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.isGoOut"> <el-radio-group class="addinputInfo" :disabled="formobj.nodeName !== '登记'" v-model="formobj.isGoOut">
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
<el-radio label="0"></el-radio> <el-radio label="2"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">进厂时间</div> <div class="span-sty">进厂时间</div>
<el-form-item><el-date-picker class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.entryTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择日期" /></el-form-item> <el-form-item><el-date-picker class="addinputInfo" :disabled="formobj.nodeName !== '登记'" v-model="formobj.entryTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择日期" /></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>预计完工</div> <div class="span-sty"><span class="icon">*</span>预计完工</div>
<el-form-item prop="estimatedFinishTime"><el-date-picker class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.estimatedFinishTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择日期" /></el-form-item> <el-form-item prop="estimatedFinishTime"><el-date-picker class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.estimatedFinishTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择日期" /></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>服务顾问</div> <div class="span-sty"><span class="icon">*</span>服务顾问</div>
<el-form-item prop="waitorName"> <el-form-item prop="waitorName">
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.waitorName" placeholder="请选择" @change="waitorChange" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName !== '登记'" v-model="formobj.waitorName" placeholder="请选择" @change="waitorChange" clearable filterable>
<el-option v-for="item in user_list" :key="item.sid" :label="item.name" :value="item.name"></el-option> <el-option v-for="item in user_list" :key="item.sid" :label="item.name" :value="item.name"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -87,7 +86,7 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">班组</div> <div class="span-sty">班组</div>
<el-form-item> <el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.groupName" placeholder="请选择" @change="groupChange" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName == '维修'" v-model="formobj.groupName" placeholder="请选择" @change="groupChange" clearable filterable>
<el-option v-for="item in group_list" :key="item.groupSid" :label="item.groupName" :value="item.groupName"></el-option> <el-option v-for="item in group_list" :key="item.groupSid" :label="item.groupName" :value="item.groupName"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -95,7 +94,7 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">主修人</div> <div class="span-sty">主修人</div>
<el-form-item> <el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.mainRepairers" placeholder="请选择" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.mainRepairers" placeholder="请选择" clearable filterable>
<el-option v-for="item in mainRepairersChange_list" :key="item.memberSid" :label="item.memberName" :value="item.memberName"></el-option> <el-option v-for="item in mainRepairersChange_list" :key="item.memberSid" :label="item.memberName" :value="item.memberName"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -104,16 +103,16 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">备注(打印)</div> <div class="span-sty">备注(打印)</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.printRemarks" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.printRemarks" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.remarks" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.remarks" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>特殊标志</div> <div class="span-sty"><span class="icon">*</span>特殊标志</div>
<el-form-item prop="isSpecialSign"> <el-form-item prop="isSpecialSign">
<el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.isSpecialSign"> <el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.isSpecialSign">
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
<el-radio label="0"></el-radio> <el-radio label="0"></el-radio>
</el-radio-group> </el-radio-group>
@ -125,7 +124,14 @@
<el-row style="border-top: 1px solid #e0e3eb"> <el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="icon">*</span>客户</div> <div class="span-sty"><span class="icon">*</span>客户</div>
<el-form-item prop="customerName"><span class="addinputInfo">{{ formobj.customerName }}</span></el-form-item> <el-form-item prop="customerName">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div>
<span class="addinputInfo">{{ formobj.customerName }}</span>
</div>
<el-button type="primary" size="mini" @click="chooseCustomer()" v-show="formobj.nodeName == '登记'">选择</el-button>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">联系电话</div> <div class="span-sty">联系电话</div>
@ -153,15 +159,15 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">行驶里程(Km)</div> <div class="span-sty">行驶里程(Km)</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.mileage" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.mileage" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">油量(L)</div> <div class="span-sty">油量(L)</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.oil" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.oil" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">当前里程(Km)</div> <div class="span-sty">当前里程(Km)</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.currentMileage" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.currentMileage" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
@ -169,20 +175,28 @@
<el-row style="border-top: 1px solid #e0e3eb"> <el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">对接人姓名</div> <div class="span-sty">对接人姓名</div>
<el-form-item><span class="addinputInfo">{{ formobj.dockingPeople }}</span></el-form-item> <el-form-item>
<el-select class="addinputInfo" v-if="formobj.billTypeKey == '2'" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.dockingPeopleSid" placeholder="请选择" @change="dockingPeopleChange" clearable filterable>
<el-option v-for="item in people_list" :key="item.sid" :label="item.name" :value="item.sid"></el-option>
</el-select>
<el-input class="addinputInfo addinputw" v-else :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.dockingPeople" clearable placeholder="" />
</el-form-item>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<div class="span-sty">对接人电话</div> <div class="span-sty">对接人电话</div>
<el-form-item><span class="addinputInfo">{{ formobj.dockingPhone }}</span></el-form-item> <el-form-item>
<span class="addinputInfo" v-if="formobj.billTypeKey == '2'">{{ formobj.dockingPhone }}</span>
<el-input class="addinputInfo addinputw" v-else :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.dockingPhone" clearable placeholder="" />
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="保险信息" name="3"> <el-collapse-item title="保险信息" name="3" v-show="formobj.billTypeKey == '1'">
<el-row style="border-top: 1px solid #e0e3eb"> <el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">责任划分</div> <div class="span-sty">责任划分</div>
<el-form-item> <el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.insuranceVo.responsibility" placeholder="请选择" @change="responsibilityChange" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.insuranceVo.responsibility" placeholder="请选择" @change="responsibilityChange" clearable filterable>
<el-option v-for="item in responsibility_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option> <el-option v-for="item in responsibility_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -190,7 +204,7 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">责任比例</div> <div class="span-sty">责任比例</div>
<el-form-item> <el-form-item>
<el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.insuranceVo.responsibilityRatio" placeholder="请选择" @change="responsibilityRatioChange" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.insuranceVo.responsibilityRatio" placeholder="请选择" @change="responsibilityRatioChange" clearable filterable>
<el-option v-for="item in responsibilityRatio_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option> <el-option v-for="item in responsibilityRatio_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -198,7 +212,7 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">是否存在人伤</div> <div class="span-sty">是否存在人伤</div>
<el-form-item> <el-form-item>
<el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.insuranceVo.isPersonInjuries"> <el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="formobj.insuranceVo.isPersonInjuries">
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
<el-radio label="0"></el-radio> <el-radio label="0"></el-radio>
</el-radio-group> </el-radio-group>
@ -207,7 +221,7 @@
</el-row> </el-row>
<el-table :key="insuranceKey" :data="formobj.insuranceVo.insuranceList" :index="index" border style="width: 100%"> <el-table :key="insuranceKey" :data="formobj.insuranceVo.insuranceList" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/> <el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<div v-if="formobj.nodeName !== '维修' && formobj.nodeName !== '结算' && formobj.nodeName !== '出厂'"> <div v-if="formobj.nodeName !== '维修' || formobj.nodeName !== '结算'">
<el-table-column align="center" width="80"> <el-table-column align="center" width="80">
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="insuranceAdd(scope.row)"></i> <i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="insuranceAdd(scope.row)"></i>
@ -219,48 +233,48 @@
</div> </div>
<el-table-column label="使用保险方" align="center" min-width="150"> <el-table-column label="使用保险方" align="center" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.useInsurerKey" placeholder="请选择" @change="useInsurerChange($event, scope.row)" clearable filterable> <el-select :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="scope.row.useInsurerKey" placeholder="请选择" @change="useInsurerChange($event, scope.row)" clearable filterable>
<el-option v-for="item in useInsurer_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option> <el-option v-for="item in useInsurer_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="使用险种" align="center" min-width="150"> <el-table-column label="使用险种" align="center" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.insuranceTypeKey" placeholder="请选择" @change="insuranceTypeChange($event, scope.row)" clearable filterable> <el-select :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="scope.row.insuranceTypeKey" placeholder="请选择" @change="insuranceTypeChange($event, scope.row)" clearable filterable>
<el-option v-for="item in insuranceType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option> <el-option v-for="item in insuranceType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" label="保险公司" align="center" min-width="150"> <el-table-column label="保险公司" align="center" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.insuranceCompanyKey" placeholder="请选择" @change="insuranceCompanyChange($event, scope.row)" clearable filterable> <el-select :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="scope.row.insuranceCompanyKey" placeholder="请选择" @change="insuranceCompanyChange($event, scope.row)" clearable filterable>
<el-option v-for="item in insuranceCompany_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option> <el-option v-for="item in insuranceCompany_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="报案号" align="center" min-width="180"> <el-table-column label="报案号" align="center" min-width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.claimBillNo" clearable placeholder="" /> <el-input :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="scope.row.claimBillNo" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="勘察员及电话" align="center" min-width="220"> <el-table-column label="勘察员及电话" align="center" min-width="220">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.investigator" clearable placeholder="" /> <el-input :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="scope.row.investigator" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="定损员及电话" align="center" min-width="220"> <el-table-column label="定损员及电话" align="center" min-width="220">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.lossAdjuster" clearable placeholder="" /> <el-input :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算'" v-model="scope.row.lossAdjuster" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="发票信息" name="4"> <el-collapse-item title="发票信息" name="4" v-show="formobj.subject == '保外'">
<el-row style="border-top: 1px solid #e0e3eb"> <el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">是否开发票</div> <div class="span-sty">是否开发票</div>
<el-form-item> <el-form-item>
<el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.invoiceVo.isInvoicing"> <el-radio-group class="addinputInfo" :disabled="formobj.nodeName == '维修' && formobj.nodeName !== '结算'" v-model="formobj.invoiceVo.isInvoicing" @change="isInvoicingChange">
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
<el-radio label="0"></el-radio> <el-radio label="0"></el-radio>
</el-radio-group> </el-radio-group>
@ -269,23 +283,40 @@
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">发票类型</div> <div class="span-sty">发票类型</div>
<el-form-item> <el-form-item>
<el-select class="addinputInfo" :disabled="formobj.invoiceVo.isInvoicing != '1' || formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.invoiceVo.invoiceType" placeholder="请选择" @change="invoiceTypeChange" clearable filterable> <el-select class="addinputInfo" :disabled="formobj.nodeName == '维修'" v-model="formobj.invoiceVo.invoiceType" placeholder="请选择" @change="invoiceTypeChange" clearable filterable>
<el-option v-for="item in invoiceType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option> <el-option v-for="item in invoiceType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<div class="span-sty">税率(%)</div>
<el-form-item><el-input class="addinputInfo addinputw" @input="countChange" :disabled="formobj.nodeName == '维修'" @keyup.native="formobj.invoiceVo.taxRate = getNumber(formobj.invoiceVo.taxRate, 2)" v-model="formobj.invoiceVo.taxRate" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">开票单位</div> <div class="span-sty">开票单位</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.invoiceVo.isInvoicing != '1' || formobj.nodeName == '维修' || formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.invoiceVo.invoiceCompany" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '维修'" v-model="formobj.invoiceVo.invoiceCompany" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">加税点的项目</div>
<el-form-item>
<el-checkbox-group class="addinputInfo" v-model="formobj.invoiceVo.taxItems" @change="countChange">
<el-checkbox :disabled="formobj.nodeName == '维修'" label="维修项目"></el-checkbox>
<el-checkbox :disabled="formobj.nodeName == '维修'" label="维修用料"></el-checkbox>
<el-checkbox :disabled="formobj.nodeName == '维修'" label="附加项目"></el-checkbox>
<el-checkbox :disabled="formobj.nodeName == '维修'" label="其它附加项目"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
<div class="title">服务项目</div> <div class="title">维修项目</div>
<el-table :key="serviceKey" :data="formobj.sitemVos" :index="index" border style="width: 100%"> <el-table :key="serviceKey" :data="formobj.sitemVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/> <el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<div v-if="formobj.nodeName !== '结算' && formobj.nodeName !== '出厂'"> <div v-if="formobj.nodeName !== '结算'">
<el-table-column align="center" width="80"> <el-table-column align="center" width="80">
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="serviceAdd(scope.row)"></i> <i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="serviceAdd(scope.row)"></i>
</template> </template>
@ -293,7 +324,7 @@
<i class="el-icon-delete" @click="serviceDelete(scope.$index)"></i> <i class="el-icon-delete" @click="serviceDelete(scope.$index)"></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="服务项目" align="center" width="200"> <el-table-column label="维修项目" align="center" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover placement="right" width="600" trigger="click"> <el-popover placement="right" width="600" trigger="click">
<div> <div>
@ -313,9 +344,9 @@
</div> </div>
<el-table-column v-else prop="serviceItem" label="项目名称" align="center" width="200" /> <el-table-column v-else prop="serviceItem" label="项目名称" align="center" width="200" />
<el-table-column prop="serviceType" label="工种" align="center" width="150" /> <el-table-column prop="serviceType" label="工种" align="center" width="150" />
<el-table-column label="维修" width="300" align="center"> <el-table-column label="维修技师" width="300" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.staffList" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" placeholder="请选择" @change="userChange(scope.row, scope.row.staffList)" clearable filterable multiple> <el-select v-model="scope.row.staffList" :disabled="formobj.nodeName == '结算'" placeholder="请选择" @change="userChange(scope.row, scope.row.staffList)" clearable filterable multiple>
<el-option v-for="item in user_list" :key="item.sid" :label="item.name" :value="item.sid"></el-option> <el-option v-for="item in user_list" :key="item.sid" :label="item.name" :value="item.sid"></el-option>
</el-select> </el-select>
</template> </template>
@ -337,7 +368,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="title">商品<span class="icon" v-show="formobj.nodeName == '竣工'">(竣工岗位职责核对出库商品及数量是否与服务项目相符)</span></div> <div class="title">维修用料<span class="icon" v-show="formobj.nodeName == '竣工'">(竣工岗位职责核对出库商品及数量是否与维修项目相符)</span></div>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty span-sty-one" style="width: 300px;!important;">前台登记时对商品要求备注</div> <div class="span-sty span-sty-one" style="width: 300px;!important;">前台登记时对商品要求备注</div>
@ -346,62 +377,87 @@
</el-row> </el-row>
<el-table :key="tableKey" :data="formobj.goodsDetailsVos" :index="index" border style="width: 100%"> <el-table :key="tableKey" :data="formobj.goodsDetailsVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="serviceItem" label="维修项目" width="200" align="center" />
<el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" /> <el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" />
<el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" /> <el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" /> <el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" />
<el-table-column prop="unit" label="单位" width="100" align="center" /> <el-table-column prop="unit" label="单位" width="100" align="center" />
<el-table-column prop="warehouseName" label="仓库" width="100" align="center" /> <el-table-column prop="warehouseName" label="仓库" width="100" align="center" />
<el-table-column prop="warehouseRackCode" label="库位" width="100" align="center" /> <el-table-column prop="warehouseRackCode" label="库位" width="100" align="center" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column prop="count" label="数量" width="100" align="center" /> <el-table-column prop="count" label="数量" width="100" align="center" />
<el-table-column prop="price" label="单价" align="center" width="150" />
<el-table-column label="折扣" align="center" width="100"> <el-table-column label="折扣" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input @input="computeYHAndJE(scope.row)" :disabled="formobj.nodeName !== '结算'" v-model="scope.row.discount" @keyup.native="scope.row.discount = getNumber(scope.row.discount, 2)" clearable placeholder="" /> <el-input @input="computeYHAndJE(scope.row)" :disabled="formobj.nodeName !== '结算'" v-model="scope.row.discount" @keyup.native="scope.row.discount = getNumber(scope.row.discount, 2)" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="discountAmount" label="优惠" width="100" align="center" /> <el-table-column prop="discountAmount" label="优惠" width="100" align="center" />
<el-table-column prop="amount" label="金额" width="100" align="center" /> <el-table-column prop="amount" label="销售金额" width="100" align="center" />
<el-table-column label="备注" align="center" min-width="300"> <el-table-column label="备注" align="center" min-width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" /> <el-input v-model="scope.row.remarks" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="operName" label=领料人 width="100" align="center" />
<el-table-column prop="receivedTime" label="接收时间" width="120" align="center" />
<el-table-column label="配件销售人" width="300" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.partsSellersSids" :disabled="formobj.nodeName !== '竣工'" placeholder="请选择" @change="partsSellerChange(scope.row, scope.row.partsSellersSids)" clearable filterable multiple>
<el-option v-for="item in user_list" :key="item.sid" :label="item.name" :value="item.sid"></el-option>
</el-select>
</template>
</el-table-column>
</el-table> </el-table>
<div class="title">附加项目</div> <div class="title">附加项目</div>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="10">
<div class="span-sty">外出费()</div> <div class="span-sty">外出费()</div>
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="formobj.outAmount = getNumber(formobj.outAmount, 2)" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.outAmount" clearable placeholder="" /></el-form-item> <el-form-item>
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<el-input class="addinputInfo addinputw" style="width: 40%" @input="outKPAountInput" @keyup.native="formobj.outAmount = getNumber(formobj.outAmount, 2)" :disabled="formobj.nodeName == '结算'" v-model="formobj.outAmount" clearable placeholder="请填写不开票金额" />
<span v-show="formobj.outKPAmount!== ''">开票金额{{ formobj.outKPAmount }}</span>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="14">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.outRemarks" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '结算'" v-model="formobj.outRemarks" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="10">
<div class="span-sty">厂家补助()</div> <div class="span-sty">厂家补助()</div>
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="formobj.subsidyAmount = getNumber(formobj.subsidyAmount, 2)" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.subsidyAmount" clearable placeholder="" /></el-form-item> <el-form-item>
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<el-input class="addinputInfo addinputw" style="width: 40%" @input="subsidyKPAountInput" @keyup.native="formobj.subsidyAmount = getNumber(formobj.subsidyAmount, 2)" :disabled="formobj.nodeName == '结算'" v-model="formobj.subsidyAmount" clearable placeholder="请填写不开票金额" />
<span v-show="formobj.subsidyKPAmount !== ''">开票金额{{ formobj.subsidyKPAmount }}</span>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="14">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.subsidyRemarks" clearable placeholder="" /></el-form-item> <el-form-item><el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '结算'" v-model="formobj.subsidyRemarks" clearable placeholder="" /></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="10">
<div class="span-sty">施救费()</div> <div class="span-sty">施救费()</div>
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="formobj.rescueAmount = getNumber(formobj.rescueAmount, 2)" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.rescueAmount" clearable placeholder="" /></el-form-item> <el-form-item>
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<el-input class="addinputInfo addinputw" style="width: 40%" @input="rescueKPAountInput" @keyup.native="formobj.rescueAmount = getNumber(formobj.rescueAmount, 2)" :disabled="formobj.nodeName == '结算'" v-model="formobj.rescueAmount" clearable placeholder="请填写不开票金额" />
<span v-show="formobj.rescueKPAmount !== ''">开票金额{{ formobj.rescueKPAmount }}</span>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
<el-form-item> <el-form-item>
<div> <div>
<el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="formobj.rescueRemarks" clearable placeholder="" /> <el-input class="addinputInfo addinputw" :disabled="formobj.nodeName == '结算'" v-model="formobj.rescueRemarks" clearable placeholder="" />
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="6">
<div> <div>
<el-upload <el-upload
class="upload-demo" class="upload-demo"
@ -419,47 +475,44 @@
</el-row> </el-row>
<el-table :key="subjoinKey" :data="formobj.aitemVos" :index="index" border style="width: 100%"> <el-table :key="subjoinKey" :data="formobj.aitemVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/> <el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<div v-if="formobj.nodeName !== '结算' && formobj.nodeName !== '出厂'"> <el-table-column align="center" width="80">
<el-table-column align="center" width="80"> <template slot="header" slot-scope="scope">
<template slot="header" slot-scope="scope"> <i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="subjoinAdd(scope.row)"></i>
<i class="add-btn-icon el-icon-plus" style="color: red;font-size:20px" @click="subjoinAdd(scope.row)"></i> </template>
</template> <template slot-scope="scope">
<template slot-scope="scope"> <i class="el-icon-delete" v-show="formobj.nodeName !== '结算'" @click="subjoinDelete(scope.$index)"></i>
<i class="el-icon-delete" @click="subjoinDelete(scope.$index)"></i> </template>
</template> </el-table-column>
</el-table-column> <el-table-column label="其它附加项目" align="center" width="200">
<el-table-column label="其它附加项目" align="center" width="200"> <template slot-scope="scope">
<template slot-scope="scope"> <el-popover placement="right" width="500" trigger="click">
<el-popover placement="right" width="500" trigger="click"> <div>
<div> <el-table :data="subjoinData" v-loading="subjoinLoading" highlight-current-row @current-change="subjoinCurrentChange($event, scope.row)">
<el-table :data="subjoinData" v-loading="subjoinLoading" highlight-current-row @current-change="subjoinCurrentChange($event, scope.row)"> <el-table-column fixed prop="aitemName" label="项目名称" align="center" />
<el-table-column fixed prop="aitemName" label="项目名称" align="center" /> <el-table-column prop="aitemCode" label="项目编码" align="center" />
<el-table-column prop="aitemCode" label="拼音缩写" align="center" /> <el-table-column prop="price" label="销售金额" align="center" />
<el-table-column prop="price" label="销售金额" align="center" /> </el-table>
</el-table> <el-pagination :page.sync="subjoinQuery.current" :page-size="subjoinQuery.size" layout="total, pager" :total="subjoinQuery.total" />
<el-pagination :page.sync="subjoinQuery.current" :page-size="subjoinQuery.size" layout="total, pager" :total="subjoinQuery.total" /> </div>
</div> <el-input slot="reference" v-model="scope.row.aitemName" @input="subjoinInput(scope.row.aitemName)" clearable placeholder="项目名称、拼音"/>
<el-input slot="reference" v-model="scope.row.aitemName" @input="subjoinInput(scope.row.aitemName)" clearable placeholder="项目名称、拼音"/> </el-popover>
</el-popover> </template>
</template> </el-table-column>
</el-table-column>
</div>
<el-table-column v-else prop="aitemName" label="其它附加项目" align="center" width="200" />
<el-table-column label="销售价" align="center" width="150"> <el-table-column label="销售价" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.price" @keyup.native="scope.row.price = getNumber(scope.row.price, 2)" clearable placeholder="" /> <el-input :disabled="formobj.nodeName == '结算'" v-model="scope.row.price" @keyup.native="scope.row.price = getNumber(scope.row.price, 2)" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" min-width="200"> <el-table-column label="备注" align="center" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input :disabled="formobj.nodeName == '结算' || formobj.nodeName == '出厂'" v-model="scope.row.remarks" clearable placeholder="" /> <el-input :disabled="formobj.nodeName == '结算'" v-model="scope.row.remarks" clearable placeholder="" />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty" style="border-right: 0px">应收合计</div> <div class="span-sty" style="border-right: 0px">应收合计</div>
<el-form-item><span class="addinputInfo">{{ ysTotal }} = 工时费{{ gsfTotal }} + 材料费{{ clfTotal }} + 附加费{{ fjfTotal }} + 税额0</span></el-form-item> <el-form-item><span class="addinputInfo">{{ ysTotal }} = 工时费{{ gsfTotal }} + 材料费{{ clfTotal }} + 附加费{{ fjfTotal }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -538,6 +591,25 @@
<el-button type="info " size="mini" @click="settleVisible = false"> </el-button> <el-button type="info " size="mini" @click="settleVisible = false"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 打印结算单保内 -->
<el-dialog title="打印类型" :visible.sync="dialogVisible" width="25%" :show-close="false">
<el-form :model="temp" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="24">
<el-form-item>
<el-radio-group v-model="temp.type">
<el-radio label="0">财务打印</el-radio>
<el-radio label="1">客户打印</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="handleConfirm"> </el-button>
<el-button type="info " size="mini" @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -558,6 +630,14 @@ export default {
viewTitle: '', viewTitle: '',
viewState: 1, viewState: 1,
submitdisabled: false, submitdisabled: false,
dialogVisible: false, //
temp: {
sid: '',
type: '',
createOrgSid: '',
useOrgSid: '',
userSid: ''
},
updateAction: process.env.VUE_APP_BASE_API + '/portal/file/upload', updateAction: process.env.VUE_APP_BASE_API + '/portal/file/upload',
fileList: [], fileList: [],
headers: { headers: {
@ -568,6 +648,7 @@ export default {
claimManufacturer_list: [], // claimManufacturer_list: [], //
group_list: [], // group_list: [], //
mainRepairersChange_list: [], // mainRepairersChange_list: [], //
people_list: [], //
settleVisible: false, // settleVisible: false, //
billType_list: [], // billType_list: [], //
responsibility_list: [], // responsibility_list: [], //
@ -664,7 +745,9 @@ export default {
invoiceType: '', invoiceType: '',
invoiceTypeKey: '', invoiceTypeKey: '',
invoiceCompanySid: '', invoiceCompanySid: '',
invoiceCompany: '' invoiceCompany: '',
taxRate: '',
taxItems: []
}, },
insuranceVo: { insuranceVo: {
responsibility: '', responsibility: '',
@ -700,8 +783,11 @@ export default {
addAmount: '', addAmount: '',
taxAmount: '', taxAmount: '',
outAmount: '', outAmount: '',
outKPAmount: '',
subsidyAmount: '', subsidyAmount: '',
subsidyKPAmount: '',
rescueAmount: '', rescueAmount: '',
rescueKPAmount: '',
actualAmount: '', actualAmount: '',
receivableAmount: '', receivableAmount: '',
subsidyRemarks: '', subsidyRemarks: '',
@ -713,7 +799,7 @@ export default {
createOrgSid: '' createOrgSid: ''
}, },
rules: { rules: {
billType: [{ required: true, message: '单类型不能为空', trigger: 'change' }], billType: [{ required: true, message: '维修单类型不能为空', trigger: 'change' }],
isGoOut: [{ required: true, message: '是否外出不能为空', trigger: 'change' }], isGoOut: [{ required: true, message: '是否外出不能为空', trigger: 'change' }],
subject: [{ required: true, message: '科目不能为空', trigger: 'change' }], subject: [{ required: true, message: '科目不能为空', trigger: 'change' }],
estimatedFinishTime: [{ required: true, message: '预计完工不能为空', trigger: 'change' }], estimatedFinishTime: [{ required: true, message: '预计完工不能为空', trigger: 'change' }],
@ -728,7 +814,7 @@ export default {
} }
}, },
computed: { computed: {
// = // =
gsfTotal() { gsfTotal() {
let gsf = '0' let gsf = '0'
if (this.formobj.sitemVos.length > 0) { if (this.formobj.sitemVos.length > 0) {
@ -740,7 +826,7 @@ export default {
} }
return gsf return gsf
}, },
// = * // = *
clfTotal() { clfTotal() {
let clf = '0' let clf = '0'
if (this.formobj.goodsDetailsVos.length > 0) { if (this.formobj.goodsDetailsVos.length > 0) {
@ -771,7 +857,7 @@ export default {
ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100 ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100
return ys return ys
}, },
// = + // = +
yhTotal() { yhTotal() {
let yh = '0' let yh = '0'
if (this.formobj.sitemVos.length > 0) { if (this.formobj.sitemVos.length > 0) {
@ -907,9 +993,10 @@ export default {
day: nowDate.getDate() day: nowDate.getDate()
} }
this.formobj.createDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day) this.formobj.createDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
this.formobj.isGoOut = '0' this.formobj.isGoOut = '2'
this.formobj.nodeCode = '1' this.formobj.nodeCode = '1'
this.formobj.nodeName = '登记' this.formobj.nodeName = '登记'
this.formobj.invoiceVo.isInvoicing = '0'
}, },
showEdit(sid) { showEdit(sid) {
this.viewTitle = '【编辑】维修单' this.viewTitle = '【编辑】维修单'
@ -926,9 +1013,13 @@ export default {
} }
}) })
}, },
selectCustomer() { chooseCustomer() {
this.viewState = 2 if (this.formobj.billType !== '') {
this.$refs['divCus'].showData(this.formobj.deptSid, this.formobj.billType) this.viewState = 2
this.$refs['divCus'].showData(this.formobj.deptSid, this.formobj.billType)
} else {
this.$message({ showClose: true, type: 'error', message: '请先选择维修单类型' })
}
}, },
backData(value) { backData(value) {
this.viewState = 1 this.viewState = 1
@ -940,6 +1031,14 @@ export default {
this.formobj.vinNo = value.vinNo this.formobj.vinNo = value.vinNo
this.formobj.vehModel = value.vehModel this.formobj.vehModel = value.vehModel
this.formobj.customerSource = value.source this.formobj.customerSource = value.source
//
if (this.formobj.billTypeKey === '2') {
req.getListByCustomerSid({ customerSid: this.formobj.customerSid }).then((res) => {
if (res.success) {
this.people_list = res.data
}
})
}
}, },
billTypeChange(value) { billTypeChange(value) {
const choose = this.billType_list.filter((item) => item.dictValue === value) const choose = this.billType_list.filter((item) => item.dictValue === value)
@ -984,6 +1083,16 @@ export default {
this.formobj.mainRepairers = '' this.formobj.mainRepairers = ''
} }
}, },
dockingPeopleChange(value) {
const choose = this.people_list.filter((item) => item.sid === value)
if (choose.length > 0 && choose !== null) {
this.formobj.dockingPeople = choose[0].name
this.formobj.dockingPhone = choose[0].mobile
} else {
this.formobj.dockingPeople = ''
this.formobj.dockingPhone = ''
}
},
responsibilityChange(value) { responsibilityChange(value) {
const choose = this.responsibility_list.filter((item) => item.dictValue === value) const choose = this.responsibility_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) { if (choose.length > 0 && choose !== null) {
@ -1040,6 +1149,14 @@ export default {
insuranceDelete(index) { insuranceDelete(index) {
this.formobj.insuranceVo.insuranceList.splice(index, 1) this.formobj.insuranceVo.insuranceList.splice(index, 1)
}, },
isInvoicingChange() {
if (this.formobj.invoiceVo.isInvoicing === '1') {
this.formobj.invoiceVo.taxItems = ['维修项目', '维修用料', '附加项目', '其它附加项目']
} else {
this.formobj.invoiceVo.taxItems = []
}
this.countChange()
},
invoiceTypeChange(value) { invoiceTypeChange(value) {
const choose = this.invoiceType_list.filter((item) => item.dictValue === value) const choose = this.invoiceType_list.filter((item) => item.dictValue === value)
if (choose.length > 0 && choose !== null) { if (choose.length > 0 && choose !== null) {
@ -1048,6 +1165,80 @@ export default {
this.formobj.invoiceVo.invoiceTypeKey = '' this.formobj.invoiceVo.invoiceTypeKey = ''
} }
}, },
//
countChange() {
//
if (this.formobj.sitemVos.length > 0) {
//
if (this.formobj.invoiceVo.taxItems.includes('维修项目')) {
this.formobj.sitemVos.forEach((e) => {
// = + * (1 + )
e.price = Math.round((parseFloat(e.sitemPrice) + parseFloat(e.sitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
this.computeYHAndXSJE(e)
})
} else {
this.formobj.sitemVos.forEach((k) => {
// =
k.price = k.sitemPrice
this.computeYHAndXSJE(k)
})
}
}
//
if (this.formobj.goodsDetailsVos.length > 0) {
//
if (this.formobj.invoiceVo.taxItems.includes('维修用料')) {
this.formobj.goodsDetailsVos.forEach((e) => {
//
if (e.isTaxRate) {
// =
e.price = e.goodsDetailsPrice
this.computeYHAndJE(e)
} else {
// = + * (1 + )
e.price = Math.round((parseFloat(e.goodsDetailsPrice) + parseFloat(e.goodsDetailsPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
this.computeYHAndJE(e)
}
})
} else {
this.formobj.goodsDetailsVos.forEach((k) => {
// =
k.price = k.goodsDetailsPrice
this.computeYHAndJE(k)
})
}
}
//
if (this.formobj.aitemVos.length > 0) {
//
if (this.formobj.invoiceVo.taxItems.includes('其它附加项目')) {
this.formobj.aitemVos.forEach((e) => {
// = + * (1 + )
e.price = Math.round((parseFloat(e.aitemPrice) + parseFloat(e.aitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
})
} else {
this.formobj.aitemVos.forEach((k) => {
// =
k.price = k.aitemPrice
})
}
}
//
if (this.formobj.invoiceVo.taxItems.includes('附加项目')) {
//
// = + * (1 + )
this.formobj.outKPAmount = Math.round((parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') + parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
// = + * (1 + )
this.formobj.subsidyKPAmount = Math.round((parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') + parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
// = + * (1 + )
this.formobj.rescueKPAmount = Math.round((parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') + parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
//
this.formobj.outKPAmount = ''
this.formobj.subsidyKPAmount = ''
this.formobj.rescueKPAmount = ''
}
},
serviceAdd() { serviceAdd() {
this.formobj.sitemVos.push({ this.formobj.sitemVos.push({
serviceItemSid: '', serviceItemSid: '',
@ -1060,6 +1251,7 @@ export default {
hourPrice: '', hourPrice: '',
hours: '', hours: '',
price: '', price: '',
sitemPrice: '', //
discount: '', discount: '',
discountAmount: '', discountAmount: '',
amount: '', amount: '',
@ -1097,7 +1289,13 @@ export default {
row.examineHourPrice = value.examineHourPrice row.examineHourPrice = value.examineHourPrice
row.hourPrice = value.hourPrice row.hourPrice = value.hourPrice
row.hours = value.hours row.hours = value.hours
row.price = value.price row.sitemPrice = value.price
if (this.formobj.invoiceVo.isInvoicing === '1' && this.formobj.invoiceVo.taxItems.length > 0 && this.formobj.invoiceVo.taxItems.includes('维修项目')) {
// = + * ( 1 + )
row.price = Math.round((parseFloat(row.sitemPrice) + parseFloat(row.sitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
row.price = row.sitemPrice
}
row.discount = '10' row.discount = '10'
row.discountAmount = '0' row.discountAmount = '0'
row.amount = row.price row.amount = row.price
@ -1120,7 +1318,18 @@ export default {
}) })
row.staffNameList = aa row.staffNameList = aa
}, },
// -- partsSellerChange(row, list) {
const aa = []
list.forEach((e) => {
this.user_list.forEach((k) => {
if (e === k.sid) {
aa.push(k.name)
}
})
})
row.partsSellers = aa
},
// --
computeYHAndXSJE(row) { computeYHAndXSJE(row) {
// ( * (1 - ( * 0.1))) // ( * (1 - ( * 0.1)))
row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100 row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100
@ -1131,7 +1340,7 @@ export default {
row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100 row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100
} }
}, },
// -- // --
computeYHAndJE(row) { computeYHAndJE(row) {
// ( * * (1 - ( * 0.1))) // ( * * (1 - ( * 0.1)))
row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100 row.discountAmount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') * Math.round((parseFloat(1) - parseFloat(row.discount === '' ? '0' : row.discount) * parseFloat(0.1)) * 100) / 100) * 100) / 100
@ -1142,11 +1351,48 @@ export default {
row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100 row.amount = Math.round((parseFloat(row.price === '' ? '0' : row.price) * parseFloat(row.count !== '' ? row.count : '0') - parseFloat(row.discountAmount === '' ? '0' : row.discountAmount)) * 100) / 100
} }
}, },
// --
outKPAountInput() {
//
if (this.formobj.invoiceVo.taxItems.includes('附加项目')) {
//
// = + * (1 + )
this.formobj.outKPAmount = Math.round((parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') + parseFloat(this.formobj.outAmount !== '' ? this.formobj.outAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
//
this.formobj.outKPAmount = ''
}
},
// --
subsidyKPAountInput() {
//
if (this.formobj.invoiceVo.taxItems.includes('附加项目')) {
//
// = + * (1 + )
this.formobj.subsidyKPAmount = Math.round((parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') + parseFloat(this.formobj.subsidyAmount !== '' ? this.formobj.subsidyAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
//
this.formobj.subsidyKPAmount = ''
}
},
// --
rescueKPAountInput() {
//
if (this.formobj.invoiceVo.taxItems.includes('附加项目')) {
//
// = + * (1 + )
this.formobj.rescueKPAmount = Math.round((parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') + parseFloat(this.formobj.rescueAmount !== '' ? this.formobj.rescueAmount : '0') * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
//
this.formobj.rescueKPAmount = ''
}
},
subjoinAdd() { subjoinAdd() {
this.formobj.aitemVos.push({ this.formobj.aitemVos.push({
aitemSid: '', aitemSid: '',
aitemName: '', aitemName: '',
price: '' price: '',
aitemPrice: '' //
}) })
}, },
subjoinInput(value) { subjoinInput(value) {
@ -1171,7 +1417,13 @@ export default {
subjoinCurrentChange(value, row) { subjoinCurrentChange(value, row) {
row.aitemSid = value.sid row.aitemSid = value.sid
row.aitemName = value.aitemName row.aitemName = value.aitemName
row.price = value.price row.aitemPrice = value.price
if (this.formobj.invoiceVo.isInvoicing === '1' && this.formobj.invoiceVo.taxItems.length > 0 && this.formobj.invoiceVo.taxItems.includes('其它附加项目')) {
// = + * ( 1 + )
row.price = Math.round((parseFloat(row.aitemPrice) + parseFloat(row.aitemPrice) * (parseFloat(1) + parseFloat(this.formobj.invoiceVo.taxRate !== '' ? this.formobj.invoiceVo.taxRate : '0') / 100)) * 100) / 100
} else {
row.price = row.aitemPrice
}
document.body.click() document.body.click()
}, },
handleSuccess(resp, file, fileList) { handleSuccess(resp, file, fileList) {
@ -1196,8 +1448,22 @@ export default {
this.formobj.operatorSid = window.sessionStorage.getItem('userSid') this.formobj.operatorSid = window.sessionStorage.getItem('userSid')
this.$refs['form_obj'].validate((valid) => { this.$refs['form_obj'].validate((valid) => {
if (valid) { if (valid) {
if (this.formobj.billTypeKey === '2' && this.formobj.dockingPeople === '') {
this.$message({ showClose: true, type: 'error', message: '维修单类类型为欠款月结,对接人信息不能为空' })
return
}
if (this.formobj.subject === '保外' && this.formobj.invoiceVo.isInvoicing === '1') {
if (this.formobj.invoiceVo.invoiceType === '') {
this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,开票类型不能为空' })
return
}
if (this.formobj.invoiceVo.taxRate === '') {
this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,税率不能为空' })
return
}
}
if (this.formobj.sitemVos.length === 0) { if (this.formobj.sitemVos.length === 0) {
this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' }) this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' })
return return
} }
this.formobj.hourAmount = this.gsfTotal // this.formobj.hourAmount = this.gsfTotal //
@ -1226,8 +1492,22 @@ export default {
this.formobj.operatorSid = window.sessionStorage.getItem('userSid') this.formobj.operatorSid = window.sessionStorage.getItem('userSid')
this.$refs['form_obj'].validate((valid) => { this.$refs['form_obj'].validate((valid) => {
if (valid) { if (valid) {
if (this.formobj.billTypeKey === '2' && this.formobj.dockingPeople === '') {
this.$message({ showClose: true, type: 'error', message: '维修单类类型为欠款月结,对接人信息不能为空' })
return
}
if (this.formobj.subject === '保外' && this.formobj.invoiceVo.isInvoicing === '1') {
if (this.formobj.invoiceVo.invoiceType === '') {
this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,开票类型不能为空' })
return
}
if (this.formobj.invoiceVo.taxRate === '') {
this.$message({ showClose: true, type: 'error', message: '发票信息中是否开发票为是,税率不能为空' })
return
}
}
if (this.formobj.sitemVos.length === 0) { if (this.formobj.sitemVos.length === 0) {
this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' }) this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' })
return return
} }
this.submitdisabled = true this.submitdisabled = true
@ -1250,7 +1530,7 @@ export default {
this.$refs['form_obj'].validate((valid) => { this.$refs['form_obj'].validate((valid) => {
if (valid) { if (valid) {
if (this.formobj.sitemVos.length === 0) { if (this.formobj.sitemVos.length === 0) {
this.$message({ showClose: true, type: 'error', message: '服务项目列表不能为空' }) this.$message({ showClose: true, type: 'error', message: '维修项目列表不能为空' })
return return
} }
this.submitdisabled = true this.submitdisabled = true
@ -1321,7 +1601,18 @@ export default {
}) })
}, },
toPrintSettle() { toPrintSettle() {
req.printSettle({ sid: this.formobj.sid }).then((res) => { if (this.formobj.subject === '保内') {
this.dialogVisible = true
} else {
this.printSettle()
}
},
printSettle() {
this.temp.sid = this.formobj.sid
this.temp.createOrgSid = this.formobj.createOrgSid
this.temp.useOrgSid = this.formobj.deptSid
this.temp.userSid = this.formobj.createBySid
req.printSettlement(this.temp).then((res) => {
if (res.success) { if (res.success) {
var xhr = new XMLHttpRequest() var xhr = new XMLHttpRequest()
xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + res.data + '&outFileName=' + '结算单', true) xhr.open('GET', process.env.VUE_APP_BASE_API + '/base/file/download?filePath=' + res.data + '&outFileName=' + '结算单', true)
@ -1346,6 +1637,14 @@ export default {
} }
}) })
}, },
handleConfirm() {
if (this.temp.type !== '') {
this.dialogVisible = false
this.printSettle()
} else {
this.$message({ showClose: true, type: 'error', message: '打印类型不能为空' })
}
},
resetState() { resetState() {
this.viewState = 1 this.viewState = 1
}, },
@ -1405,7 +1704,9 @@ export default {
invoiceType: '', invoiceType: '',
invoiceTypeKey: '', invoiceTypeKey: '',
invoiceCompanySid: '', invoiceCompanySid: '',
invoiceCompany: '' invoiceCompany: '',
taxRate: '',
taxItems: []
}, },
insuranceVo: { insuranceVo: {
responsibility: '', responsibility: '',
@ -1441,8 +1742,11 @@ export default {
addAmount: '', addAmount: '',
taxAmount: '', taxAmount: '',
outAmount: '', outAmount: '',
outKPAmount: '',
subsidyAmount: '', subsidyAmount: '',
subsidyKPAmount: '',
rescueAmount: '', rescueAmount: '',
rescueKPAmount: '',
actualAmount: '', actualAmount: '',
receivableAmount: '', receivableAmount: '',
subsidyRemarks: '', subsidyRemarks: '',

8
yxt-as-ui/src/views/operation/repairbill/repairbillBYLeaveFactory.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<!--列表页面--> <!--列表页面-->
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar view-title="维修单管理(出厂)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/> <button-bar view-title="维修单管理(出厂)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分--> <!--Start查询列表部分-->
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
@ -26,7 +26,7 @@
<span style="padding: 0 8px"></span> <span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker> <el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单类型"> <el-form-item label="维修单类型">
<el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable> <el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option> </el-option>
@ -97,7 +97,7 @@
<span>{{ scope.row.outDoorState == '1' ? '是' : scope.row.outDoorState == '0' ? '否' :'' }}</span> <span>{{ scope.row.outDoorState == '1' ? '是' : scope.row.outDoorState == '0' ? '否' :'' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单据编号" align="center" width="130"> <el-table-column label="单据编号" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span> <span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
</template> </template>
@ -107,7 +107,7 @@
<el-table-column prop="dept" label="制单部门" align="center" width="120" /> <el-table-column prop="dept" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" /> <el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" /> <el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="billType" label="单类型" align="center" width="120" /> <el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="科目" align="center" width="100" /> <el-table-column prop="subject" label="科目" align="center" width="100" />
<el-table-column prop="entryTime" label="进厂时间" align="center" width="160" /> <el-table-column prop="entryTime" label="进厂时间" align="center" width="160" />
<el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" /> <el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" />

48
yxt-as-ui/src/views/operation/repairbill/repairbillByBeCompleted.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<!--列表页面--> <!--列表页面-->
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar view-title="维修单管理(竣工)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/> <button-bar view-title="维修单管理(竣工)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分--> <!--Start查询列表部分-->
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
@ -26,7 +26,7 @@
<span style="padding: 0 8px"></span> <span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker> <el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单类型"> <el-form-item label="维修单类型">
<el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable> <el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option> </el-option>
@ -92,7 +92,7 @@
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange"> <el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/> <el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/> <el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="单据编号" align="center" width="130"> <el-table-column label="单据编号" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span> <span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
</template> </template>
@ -102,7 +102,7 @@
<el-table-column prop="dept" label="制单部门" align="center" width="120" /> <el-table-column prop="dept" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" /> <el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" /> <el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="billType" label="单类型" align="center" width="120" /> <el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="科目" align="center" width="100" /> <el-table-column prop="subject" label="科目" align="center" width="100" />
<el-table-column prop="entryTime" label="进厂时间" align="center" width="160" /> <el-table-column prop="entryTime" label="进厂时间" align="center" width="160" />
<el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" /> <el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" />
@ -211,13 +211,6 @@ export default {
btnKey: 'toEdit', btnKey: 'toEdit',
btnLabel: '编辑' btnLabel: '编辑'
}, },
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -314,9 +307,6 @@ export default {
case 'toEdit': case 'toEdit':
this.toEdit() this.toEdit()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -435,36 +425,6 @@ export default {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)
}, },
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
// //
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

48
yxt-as-ui/src/views/operation/repairbill/repairbillByMaintain.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<!--列表页面--> <!--列表页面-->
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar view-title="维修单管理(维修)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/> <button-bar view-title="维修单管理(维修)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分--> <!--Start查询列表部分-->
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
@ -26,7 +26,7 @@
<span style="padding: 0 8px"></span> <span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker> <el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单类型"> <el-form-item label="维修单类型">
<el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable> <el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option> </el-option>
@ -92,7 +92,7 @@
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange"> <el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/> <el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/> <el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="单据编号" align="center" width="130"> <el-table-column label="单据编号" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span> <span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
</template> </template>
@ -102,7 +102,7 @@
<el-table-column prop="dept" label="制单部门" align="center" width="120" /> <el-table-column prop="dept" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" /> <el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" /> <el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="billType" label="单类型" align="center" width="120" /> <el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="科目" align="center" width="100" /> <el-table-column prop="subject" label="科目" align="center" width="100" />
<el-table-column prop="entryTime" label="进厂时间" align="center" width="160" /> <el-table-column prop="entryTime" label="进厂时间" align="center" width="160" />
<el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" /> <el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" />
@ -168,13 +168,6 @@ export default {
btnKey: 'toEdit', btnKey: 'toEdit',
btnLabel: '编辑' btnLabel: '编辑'
}, },
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -268,9 +261,6 @@ export default {
case 'toEdit': case 'toEdit':
this.toEdit() this.toEdit()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -363,36 +353,6 @@ export default {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)
}, },
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
// //
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

48
yxt-as-ui/src/views/operation/repairbill/repairbillBySendWork.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<!--列表页面--> <!--列表页面-->
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar view-title="维修单管理(派工)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/> <button-bar view-title="维修单管理(派工)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分--> <!--Start查询列表部分-->
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
@ -26,7 +26,7 @@
<span style="padding: 0 8px"></span> <span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker> <el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单类型"> <el-form-item label="维修单类型">
<el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable> <el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option> </el-option>
@ -92,7 +92,7 @@
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange"> <el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/> <el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/> <el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="单据编号" align="center" width="130"> <el-table-column label="单据编号" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span> <span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
</template> </template>
@ -102,7 +102,7 @@
<el-table-column prop="dept" label="制单部门" align="center" width="120" /> <el-table-column prop="dept" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" /> <el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" /> <el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="billType" label="单类型" align="center" width="120" /> <el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="科目" align="center" width="100" /> <el-table-column prop="subject" label="科目" align="center" width="100" />
<el-table-column prop="entryTime" label="进厂时间" align="center" width="160" /> <el-table-column prop="entryTime" label="进厂时间" align="center" width="160" />
<el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" /> <el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" />
@ -168,13 +168,6 @@ export default {
btnKey: 'toEdit', btnKey: 'toEdit',
btnLabel: '编辑' btnLabel: '编辑'
}, },
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -268,9 +261,6 @@ export default {
case 'toEdit': case 'toEdit':
this.toEdit() this.toEdit()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -363,36 +353,6 @@ export default {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)
}, },
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
// //
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

48
yxt-as-ui/src/views/operation/repairbill/repairbillBySettleAccounts.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<!--列表页面--> <!--列表页面-->
<div v-show="viewState == 1"> <div v-show="viewState == 1">
<button-bar view-title="维修单管理(结算)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/> <button-bar view-title="维修单管理(结算)" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分--> <!--Start查询列表部分-->
<div class="main-content"> <div class="main-content">
<div class="searchcon"> <div class="searchcon">
@ -26,7 +26,7 @@
<span style="padding: 0 8px"></span> <span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker> <el-date-picker v-model="listQuery.params.endTime" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="单类型"> <el-form-item label="维修单类型">
<el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable> <el-select v-model="listQuery.params.billType" clearable placeholder="请选择" filterable>
<el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"> <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option> </el-option>
@ -92,7 +92,7 @@
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange"> <el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/> <el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/> <el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="单据编号" align="center" width="130"> <el-table-column label="单据编号" align="center" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span> <span class="bluezi" @click="toInfo(scope.row)">{{ scope.row.billNo }}</span>
</template> </template>
@ -102,7 +102,7 @@
<el-table-column prop="dept" label="制单部门" align="center" width="120" /> <el-table-column prop="dept" label="制单部门" align="center" width="120" />
<el-table-column prop="createByName" label="制单人" align="center" width="120" /> <el-table-column prop="createByName" label="制单人" align="center" width="120" />
<el-table-column prop="createTime" label="制单日期" align="center" width="120" /> <el-table-column prop="createTime" label="制单日期" align="center" width="120" />
<el-table-column prop="billType" label="单类型" align="center" width="120" /> <el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="科目" align="center" width="100" /> <el-table-column prop="subject" label="科目" align="center" width="100" />
<el-table-column prop="entryTime" label="进厂时间" align="center" width="160" /> <el-table-column prop="entryTime" label="进厂时间" align="center" width="160" />
<el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" /> <el-table-column prop="estimatedFinishTime" label="预计完工时间" align="center" width="160" />
@ -169,13 +169,6 @@ export default {
btnKey: 'toEdit', btnKey: 'toEdit',
btnLabel: '编辑' btnLabel: '编辑'
}, },
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{ {
type: 'info', type: 'info',
size: 'small', size: 'small',
@ -269,9 +262,6 @@ export default {
case 'toEdit': case 'toEdit':
this.toEdit() this.toEdit()
break break
case 'doDel':
this.doDel()
break
case 'doClose': case 'doClose':
this.doClose() this.doClose()
break break
@ -364,36 +354,6 @@ export default {
this.viewState = 4 this.viewState = 4
this.$refs['divInfo'].showInfo(row) this.$refs['divInfo'].showInfo(row)
}, },
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
// //
resetState() { resetState() {
this.viewState = 1 this.viewState = 1

85
yxt-as-ui/src/views/operation/repairbill/repairbillInfo.vue

@ -26,7 +26,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">单类型</div> <div class="span-sty">维修单类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.billType }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.billType }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -137,7 +137,7 @@
</el-col> </el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="保险信息" name="3"> <el-collapse-item title="保险信息" name="3" v-show="formobj.billTypeKey == '1'">
<el-row style="border-top: 1px solid #e0e3eb"> <el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">责任划分</div> <div class="span-sty">责任划分</div>
@ -162,7 +162,7 @@
<el-table-column prop="lossAdjuster" label="定损员及电话" align="center" min-width="220"/> <el-table-column prop="lossAdjuster" label="定损员及电话" align="center" min-width="220"/>
</el-table> </el-table>
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="发票信息" name="4"> <el-collapse-item title="发票信息" name="4" v-show="formobj.subject == '保外'">
<el-row style="border-top: 1px solid #e0e3eb"> <el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">是否开发票</div> <div class="span-sty">是否开发票</div>
@ -172,17 +172,34 @@
<div class="span-sty">发票类型</div> <div class="span-sty">发票类型</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceType }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceType }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8">
<div class="span-sty">税率</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.taxRate }}</span></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">开票单位</div> <div class="span-sty">开票单位</div>
<el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceCompany }}</span></el-form-item> <el-form-item><span class="addinputInfo">{{ formobj.invoiceVo.invoiceCompany }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="16">
<div class="span-sty">加税点的项目</div>
<el-form-item>
<el-checkbox-group class="addinputInfo" v-model="formobj.invoiceVo.taxItems">
<el-checkbox disabled label="维修项目"></el-checkbox>
<el-checkbox disabled label="维修用料"></el-checkbox>
<el-checkbox disabled label="附加项目"></el-checkbox>
<el-checkbox disabled label="其它附加项目"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row> </el-row>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
<div class="title">服务项目</div> <div class="title">维修项目</div>
<el-table :key="serviceKey" :data="formobj.sitemVos" :index="index" border style="width: 100%"> <el-table :key="serviceKey" :data="formobj.sitemVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/> <el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column prop="serviceItem" label="服务项目" align="center" width="200" /> <el-table-column prop="serviceItem" label="维修项目" align="center" width="200" />
<el-table-column prop="serviceType" label="工种" align="center" width="150" /> <el-table-column prop="serviceType" label="工种" align="center" width="150" />
<el-table-column prop="repairerName" label="维修人" width="200" align="center" /> <el-table-column prop="repairerName" label="维修人" width="200" align="center" />
<el-table-column prop="examineHourPrice" label="工时提成" align="center" width="100" /> <el-table-column prop="examineHourPrice" label="工时提成" align="center" width="100" />
@ -194,7 +211,7 @@
<el-table-column prop="amount" label="金额" align="center" width="150" /> <el-table-column prop="amount" label="金额" align="center" width="150" />
<el-table-column prop="remarks" label="备注" align="center" min-width="300" /> <el-table-column prop="remarks" label="备注" align="center" min-width="300" />
</el-table> </el-table>
<div class="title">商品</div> <div class="title">维修用料</div>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty span-sty-one" style="width: 300px;!important;">前台登记时对商品要求备注</div> <div class="span-sty span-sty-one" style="width: 300px;!important;">前台登记时对商品要求备注</div>
@ -203,24 +220,33 @@
</el-row> </el-row>
<el-table :key="tableKey" :data="formobj.goodsDetailsVos" :index="index" border style="width: 100%"> <el-table :key="tableKey" :data="formobj.goodsDetailsVos" :index="index" border style="width: 100%">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" /> <el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" />
<el-table-column prop="serviceItem" label="维修项目" width="200" align="center" />
<el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" /> <el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" />
<el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" /> <el-table-column prop="goodsSkuCode" label="图号" width="100" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" /> <el-table-column prop="goodsSkuOwnSpec" label="规格" width="100" align="center" />
<el-table-column prop="unit" label="单位" width="100" align="center" /> <el-table-column prop="unit" label="单位" width="100" align="center" />
<el-table-column prop="warehouseName" label="仓库" width="100" align="center" /> <el-table-column prop="warehouseName" label="仓库" width="100" align="center" />
<el-table-column prop="warehouseRackCode" label="库位" width="100" align="center" /> <el-table-column prop="warehouseRackCode" label="库位" width="100" align="center" />
<el-table-column prop="price" label="销售价" align="center" width="150" />
<el-table-column prop="count" label="数量" width="100" align="center" /> <el-table-column prop="count" label="数量" width="100" align="center" />
<el-table-column prop="price" label="单价" align="center" width="150" />
<el-table-column prop="discount" label="折扣" align="center" width="100" /> <el-table-column prop="discount" label="折扣" align="center" width="100" />
<el-table-column prop="discountAmount" label="优惠" width="100" align="center" /> <el-table-column prop="discountAmount" label="优惠" width="100" align="center" />
<el-table-column prop="amount" label="金额" width="100" align="center" /> <el-table-column prop="amount" label="销售金额" width="100" align="center" />
<el-table-column prop="remarks" label="备注" align="center" min-width="300" /> <el-table-column prop="remarks" label="备注" align="center" min-width="300" />
<el-table-column prop="operName" label=领料人 width="100" align="center" />
<el-table-column prop="receivedTime" label="接收时间" width="120" align="center" />
<el-table-column prop="partsSellers" label="配件销售人" min-width="150" align="center" />
</el-table> </el-table>
<div class="title">附加项目</div> <div class="title">附加项目</div>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">外出费()</div> <div class="span-sty">外出费()</div>
<el-form-item><span class="addinputInfo">{{ formobj.outAmount }}</span></el-form-item> <el-form-item>
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<span class="addinputInfo">{{ formobj.outAmount }}</span>
<span v-show="formobj.outKPAmount !== ''">开票金额{{ formobj.outKPAmount }}</span>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
@ -230,7 +256,12 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">厂家补助()</div> <div class="span-sty">厂家补助()</div>
<el-form-item><span class="addinputInfo">{{ formobj.subsidyAmount }}</span></el-form-item> <el-form-item>
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<span class="addinputInfo">{{ formobj.subsidyAmount }}</span>
<span v-show="formobj.subsidyKPAmount !== ''">开票金额{{ formobj.subsidyKPAmount }}</span>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
@ -240,7 +271,12 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">施救费()</div> <div class="span-sty">施救费()</div>
<el-form-item><span class="addinputInfo">{{ formobj.rescueAmount }}</span></el-form-item> <el-form-item>
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<span class="addinputInfo">{{ formobj.rescueAmount }}</span>
<span v-show="formobj.rescueKPAmount !== ''">开票金额{{ formobj.rescueKPAmount }}</span>
</div>
</el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">备注</div> <div class="span-sty">备注</div>
@ -263,7 +299,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<div class="span-sty" style="border-right: 0px">应收合计</div> <div class="span-sty" style="border-right: 0px">应收合计</div>
<el-form-item><span class="addinputInfo">{{ ysTotal }} = 工时费{{ gsfTotal }} + 材料费{{ clfTotal }} + 附加费{{ fjfTotal }} + 税额0</span></el-form-item> <el-form-item><span class="addinputInfo">{{ ysTotal }} = 工时费{{ gsfTotal }} + 材料费{{ clfTotal }} + 附加费{{ fjfTotal }}</span></el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
@ -355,7 +391,9 @@ export default {
invoiceType: '', invoiceType: '',
invoiceTypeKey: '', invoiceTypeKey: '',
invoiceCompanySid: '', invoiceCompanySid: '',
invoiceCompany: '' invoiceCompany: '',
taxRate: '',
taxItems: []
}, },
insuranceVo: { insuranceVo: {
responsibility: '', responsibility: '',
@ -391,8 +429,11 @@ export default {
addAmount: '', addAmount: '',
taxAmount: '', taxAmount: '',
outAmount: '', outAmount: '',
outKPAmount: '',
subsidyAmount: '', subsidyAmount: '',
subsidyKPAmount: '',
rescueAmount: '', rescueAmount: '',
rescueKPAmount: '',
actualAmount: '', actualAmount: '',
receivableAmount: '', receivableAmount: '',
subsidyRemarks: '', subsidyRemarks: '',
@ -407,7 +448,7 @@ export default {
} }
}, },
computed: { computed: {
// = // =
gsfTotal() { gsfTotal() {
let gsf = '0' let gsf = '0'
if (this.formobj.sitemVos.length > 0) { if (this.formobj.sitemVos.length > 0) {
@ -450,7 +491,7 @@ export default {
ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100 ys = Math.round((parseFloat(ys) + parseFloat(this.gsfTotal) + parseFloat(this.clfTotal) + parseFloat(this.fjfTotal)) * 100) / 100
return ys return ys
}, },
// = + // = +
yhTotal() { yhTotal() {
let yh = '0' let yh = '0'
if (this.formobj.sitemVos.length > 0) { if (this.formobj.sitemVos.length > 0) {
@ -492,6 +533,13 @@ export default {
} }
}) })
} }
if (this.formobj.goodsDetailsVos.length > 0) {
this.formobj.goodsDetailsVos.forEach((e) => {
if (e.partsSellers.length > 0) {
e.partsSellers = e.partsSellers.join(',')
}
})
}
} }
}) })
}, },
@ -560,7 +608,9 @@ export default {
invoiceType: '', invoiceType: '',
invoiceTypeKey: '', invoiceTypeKey: '',
invoiceCompanySid: '', invoiceCompanySid: '',
invoiceCompany: '' invoiceCompany: '',
taxRate: '',
taxItems: []
}, },
insuranceVo: { insuranceVo: {
responsibility: '', responsibility: '',
@ -596,8 +646,11 @@ export default {
addAmount: '', addAmount: '',
taxAmount: '', taxAmount: '',
outAmount: '', outAmount: '',
outKPAmount: '',
subsidyAmount: '', subsidyAmount: '',
subsidyKPAmount: '',
rescueAmount: '', rescueAmount: '',
rescueKPAmount: '',
actualAmount: '', actualAmount: '',
receivableAmount: '', receivableAmount: '',
subsidyRemarks: '', subsidyRemarks: '',

Loading…
Cancel
Save