AgentPoolChannel2.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. <template>
  2. <div>
  3. <el-row class="queryFrom">
  4. <el-form ref="queryFormRef" :inline="true" :model="queryFrom" label-width="130px" size="small">
  5. <el-row>
  6. <el-col :span="6">
  7. <el-form-item label="业务员工号">
  8. <el-input v-model="queryFrom.operatorId" placeholder="请输入业务员工号" class="widths" clearable></el-input>
  9. </el-form-item>
  10. </el-col>
  11. <el-col :span="6">
  12. <el-form-item label="业务员姓名">
  13. <el-input v-model="queryFrom.operatorName" placeholder="请输入业务员姓名" class="widths" clearable></el-input>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="6">
  17. <el-form-item label="订单号">
  18. <el-input v-model="queryFrom.orderNo" placeholder="请输入订单号" class="widths" clearable></el-input>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="6">
  22. <el-form-item label="车牌号">
  23. <el-input v-model="queryFrom.licenseNo" placeholder="请输入车牌号" class="widths" clearable></el-input>
  24. </el-form-item>
  25. </el-col>
  26. </el-row>
  27. <el-row>
  28. <el-col :span="6">
  29. <el-form-item label="车架号">
  30. <el-input v-model="queryFrom.frameNo" placeholder="请输入车架号" class="widths" clearable></el-input>
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="6">
  34. <el-form-item label="投保人姓名">
  35. <el-input
  36. v-model="queryFrom.insuredName"
  37. placeholder="请输入投保人姓名"
  38. class="widths"
  39. clearable
  40. ></el-input>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="6">
  44. <el-form-item label="机构名称">
  45. <el-cascader
  46. class="widths"
  47. :options="institutionOptions"
  48. v-model="queryFrom.deptId"
  49. :props="{
  50. checkStrictly: true,
  51. value: 'id',
  52. label: 'name',
  53. }"
  54. @change="handleChange"
  55. clearable
  56. ></el-cascader>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="6">
  60. <el-form-item label="录单日期">
  61. <el-date-picker
  62. v-model="queryFrom.data"
  63. type="daterange"
  64. @change="monthChange"
  65. start-placeholder="开始日期"
  66. end-placeholder="结束日期"
  67. value-format="yyyy-MM-dd"
  68. clearable
  69. style="width: 200px;"
  70. ></el-date-picker>
  71. </el-form-item>
  72. </el-col>
  73. </el-row>
  74. <el-row>
  75. <el-col :span="6">
  76. <el-form-item label="保险公司">
  77. <el-select v-model="queryFrom.companyId" filterable class="widths" clearable>
  78. <el-option
  79. v-for="val in companyList"
  80. :key="val.id"
  81. :label="val.name"
  82. :value="val.id"
  83. ></el-option>
  84. </el-select>
  85. </el-form-item>
  86. </el-col>
  87. <el-col :span="4">
  88. <el-form-item label>
  89. <el-button size="small" type="primary" @click="queryStaffInfo">查询</el-button>
  90. </el-form-item>
  91. </el-col>
  92. </el-row>
  93. </el-form>
  94. </el-row>
  95. <!-- button2Name="收回"
  96. button2Type="text"
  97. @handleButton2="takeBack" -->
  98. <kt-common-table
  99. v-loading="loading"
  100. element-loading-text="加载中..."
  101. :data="pageResult"
  102. :columns="columns"
  103. :showBatchDelete="false"
  104. @findPage="findPage"
  105. button3Name="转发"
  106. button3Type="text"
  107. @handleButton3="transmit"
  108. button5Name="详情"
  109. button5Type="text"
  110. @handleButton5="detailFun"
  111. ></kt-common-table>
  112. <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
  113. 转发人:
  114. <el-select v-model="transmitValue" placeholder="请选择" filterable clearable>
  115. <el-option
  116. v-for="item in options"
  117. :key="item.userId"
  118. :label="item.name"
  119. :value="item.userId"
  120. ></el-option>
  121. </el-select>
  122. <span slot="footer" class="dialog-footer">
  123. <el-button size="small" @click="dialogVisible = false">取 消</el-button>
  124. <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
  125. </span>
  126. </el-dialog>
  127. <detailsDialog ref="detailsDialog" :orderInfo="queryOrders"></detailsDialog>
  128. </div>
  129. </template>
  130. <script>
  131. import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
  132. import Cookies from "js-cookie";
  133. import CommonUtil from "@/utils/comutil.js";
  134. import detailsDialog from "@/views/Core/components/detailsDialog.vue";
  135. export default {
  136. components: {
  137. KtCommonTable,
  138. detailsDialog
  139. },
  140. data() {
  141. return {
  142. pageRequest: {
  143. pageNum: 1,
  144. pageSize: 20
  145. },
  146. queryFrom: {},
  147. pageResult: {},
  148. queryOrders:{},
  149. columns: [
  150. // 数据列
  151. { prop: "orderno", label: "订单号", sortable: false },
  152. {
  153. prop: "username",
  154. label: "业务员",
  155. sortable: false
  156. },
  157. { prop: "deptname", label: "部门名称", sortable: false },
  158. { prop: "insCompany", label: "承保公司", sortable: false },
  159. {
  160. prop: "licenseno",
  161. label: "车牌号",
  162. sortable: false
  163. },
  164. { prop: "product", label: "投保险种", sortable: false },
  165. {
  166. prop: "insuredname",
  167. label: "投保人姓名",
  168. sortable: false
  169. },
  170. {
  171. prop: "orderstatus",
  172. label: "状态",
  173. sortable: false,
  174. formatter: this.statusFormatter
  175. }
  176. ],
  177. statusoptions: [],
  178. dialogVisible: false,
  179. companyList: [], //保险公司
  180. institutionOptions: [], //机构名称列表
  181. options: [],//转发人列表
  182. transmitValue: "", //选中的转发人
  183. orderNo:'', //主订单号
  184. subOrderId:'', //子订单号
  185. loading:false
  186. };
  187. },
  188. created() {
  189. this.$api.insCompany.dicType("insOrderStatus").then(res => {
  190. this.statusoptions = res.data.ddList;
  191. });
  192. this.$api.letter.gainTopList().then(res => {
  193. this.companyList = res.data;
  194. });
  195. this.$api.dept.findAllTree().then(res => {
  196. this.institutionOptions = res.data;
  197. });
  198. },
  199. methods: {
  200. queryStaffInfo() {
  201. this.findPage();
  202. },
  203. statusFormatter(row, column) {
  204. //协议类型
  205. let status = row.orderstatus;
  206. return CommonUtil.getDataName({
  207. dataList: this.statusoptions,
  208. value: "dictValue",
  209. label: "dictTag",
  210. data: status
  211. });
  212. },
  213. // 右侧列表的方法Start
  214. findPage(data) {
  215. if (data && data.pageRequest) {
  216. this.pageRequest.pageNum = data.pageRequest.pageNum;
  217. this.pageRequest.pageSize = data.pageRequest.pageSize;
  218. }
  219. this.loading=true
  220. this.$api.task
  221. .queryPageHospitalityLinkagent({
  222. ...this.pageRequest,
  223. ...this.queryFrom,
  224. orderStatus:2,
  225. userId: Cookies.get("user")
  226. })
  227. .then(res => {
  228. if (res.code == 200) {
  229. this.loading=false
  230. this.pageResult = res.data;
  231. } else {
  232. this.loading=false
  233. this.$message.error(res.msg);
  234. }
  235. });
  236. },
  237. transmit(row) {
  238. this.dialogVisible = true;
  239. this.transmitValue = "";
  240. this.orderNo=row.row.orderno
  241. this.subOrderId=row.row.subOrderId
  242. this.$api.task.getCustomerUsers().then(res=>{
  243. if(res.code==200){
  244. this.options=res.data
  245. }
  246. })
  247. },
  248. // 收回
  249. takeBack(row) {
  250. let orderNo=row.row.orderno
  251. let subOrderId=row.row.subOrderId
  252. this.$api.task.taskPoolsRecover({orderNo,subOrderId}).then(res=>{
  253. if(res.code==200){
  254. this.$message({
  255. message: res.msg,
  256. type: 'success'
  257. });
  258. }
  259. else{
  260. this.$message.error(res.msg);
  261. }
  262. })
  263. },
  264. detailFun(row) {
  265. let params = {
  266. companyId: row.row.companyId
  267. };
  268. this.$api.letter.getByCompanyId(params).then(res => {
  269. if (res.code == "200") {
  270. var data = res.data;
  271. data.kindinfo.map((ele, index) => {
  272. switch (ele.kindCode) {
  273. case "A":
  274. ele.amount = "投保";
  275. break;
  276. case "D4":
  277. case "SY_FJ_YBW2":
  278. ele.unitAmount = this.toChinesNum(ele.unitAmount);
  279. break;
  280. case "MJ1":
  281. case "MJ2":
  282. case "MJ3":
  283. case "MJ4":
  284. ele.deductibleRate = ele.deductibleRate + "%";
  285. break;
  286. default:
  287. ele.amount = this.toChinesNum(ele.amount);
  288. }
  289. return ele;
  290. });
  291. this.queryOrders = data;
  292. //赋值费用信息
  293. // this.feeDetailInfo=data.orderFeeResult;
  294. }
  295. });
  296. this.$refs.detailsDialog.setBackupVisible(true);
  297. },
  298. transmitSumit() {
  299. if(this.transmitValue){
  300. this.$api.task.forwardingSubOrders({auditId:this.transmitValue,orderNo:this.orderNo,subOrderId:this.subOrderId}).then(res=>{
  301. if(res.code==200){
  302. this.options=res.data
  303. this.dialogVisible = false;
  304. this.findPage()
  305. this.$message({
  306. message: res.msg,
  307. type: 'success'
  308. });
  309. }
  310. else{
  311. this.$message.error(res.msg);
  312. }
  313. })
  314. }
  315. else{
  316. this.$message.error('请选择转发人!');
  317. }
  318. },
  319. //联级选择器触发事件
  320. handleChange(val) {
  321. if (val.length !== 0) {
  322. this.queryFrom.deptId = val.at(-1);
  323. } else {
  324. this.queryFrom.deptId = "";
  325. }
  326. },
  327. monthChange(e) {
  328. if (e === null) {
  329. this.queryFrom.startDate = "";
  330. this.queryFrom.endDate = "";
  331. } else {
  332. this.queryFrom.startDate = e[0];
  333. this.queryFrom.endDate = e[1];
  334. }
  335. }
  336. }
  337. };
  338. </script>
  339. <style scoped>
  340. .widths {
  341. width: 200px;
  342. }
  343. </style>