DaikeLetter.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <template>
  2. <div>
  3. <div class="flex f-c back">
  4. <el-form
  5. class="demo-ruleForm"
  6. :model="salespersonForm"
  7. label-width="100px"
  8. size="small"
  9. style="margin-top: 15px"
  10. >
  11. <el-row type="flex" justify="space-between">
  12. <el-col :span="5">
  13. <el-form-item label="工号">
  14. <el-input
  15. placeholder="请输入工号"
  16. v-model="salespersonForm.userId"
  17. maxlength="17"
  18. type="text"
  19. show-word-limit
  20. >
  21. <el-button
  22. slot="append"
  23. type="primary"
  24. icon="el-icon-search"
  25. @click="toChooseName()"
  26. style="color: #fff;background-color:#D42426;border-color:#D42426;"
  27. ></el-button>
  28. </el-input>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="5">
  32. <el-form-item label="业务员" prop="name">
  33. <el-input
  34. placeholder="请输入业务员"
  35. v-model="salespersonForm.name"
  36. type="text"
  37. show-word-limit
  38. >
  39. <el-button
  40. slot="append"
  41. type="primary"
  42. icon="el-icon-search"
  43. @click="toChooseName()"
  44. style="color: #fff;background-color:#D42426;border-color:#D42426;"
  45. ></el-button>
  46. </el-input>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="5">
  50. <el-form-item label="工号类型">
  51. <el-select v-model="salespersonForm.noType" disabled>
  52. <el-option label="业务员" value="A"></el-option>
  53. <el-option label="代理人" value="B"></el-option>
  54. </el-select>
  55. </el-form-item>
  56. </el-col>
  57. <el-col :span="5">
  58. <el-form-item label="归属" >
  59. <el-input v-model="salespersonForm.deptName" disabled></el-input>
  60. </el-form-item>
  61. </el-col>
  62. </el-row>
  63. </el-form>
  64. </div>
  65. <div class="quotation-page">
  66. <el-tabs v-model="activeName" tab-position="left" @tab-click="handleClick">
  67. <el-tab-pane label="报价" name="999" >
  68. <div class="quotation-content">
  69. <Ktletter ref="Ktletter" :isdisabled="isdisabled" isLetter="2"></Ktletter>
  70. </div>
  71. </el-tab-pane>
  72. <el-tab-pane label="全部订单" name="888" :disabled="isdisabled">
  73. <div class="quotation-content">
  74. <KtOrder ref="KtOrder" @orderEdit="orderEdit" :isLetterOrder="false"></KtOrder>
  75. </div>
  76. </el-tab-pane>
  77. <el-tab-pane v-for="(val) in orderOption" :key='val.value' :label="val.lable" :name="val.value" :disabled="isdisabled">
  78. <div class="quotation-content">
  79. <KtOrder :ref="'refName' + val.value" @orderEdit="orderEdit" :isLetterOrder="false"></KtOrder>
  80. </div>
  81. </el-tab-pane>
  82. </el-tabs>
  83. </div>
  84. <el-dialog title="业务员信息" :visible.sync="dialogVisible" >
  85. <el-form :inline="true" class="demo-form-inline" size="small" label-width="80px" :model="salespersonForm" >
  86. <el-row :gutter="20">
  87. <el-col :span="12">
  88. <el-form-item label="工号">
  89. <el-input v-model="salespersonForm.userId" placeholder="工号" clearable></el-input>
  90. </el-form-item>
  91. </el-col>
  92. <el-col :span="12">
  93. <el-form-item label="业务员">
  94. <el-input v-model="salespersonForm.name" placeholder="业务员" clearable></el-input>
  95. </el-form-item>
  96. </el-col>
  97. <el-col :span="12">
  98. <el-form-item label="手机号">
  99. <el-input v-model="salespersonForm.mobile" placeholder="手机号" clearable></el-input>
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="9">
  103. <el-form-item label="身份证号">
  104. <el-input v-model="salespersonForm.identity" placeholder="身份证号" clearable></el-input>
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="2">
  108. <el-form-item>
  109. <el-button type="primary" size="small" @click="toChooseName()">查询</el-button>
  110. </el-form-item>
  111. </el-col>
  112. </el-row>
  113. </el-form>
  114. <el-table
  115. size="small"
  116. :data="salespersonData"
  117. height="690"
  118. border
  119. style="width: 100%"
  120. :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
  121. highlight-current-row
  122. @row-dblclick="reslistCurrentChange"
  123. >
  124. <el-table-column prop="userId" label="工号" align="center" ></el-table-column>
  125. <el-table-column prop="name" label=" 业务员名称" align="center" ></el-table-column>
  126. <el-table-column prop="mobile" label="手机号" align="center"></el-table-column>
  127. <el-table-column prop="identity" label="身份证号" align="center"></el-table-column>
  128. </el-table>
  129. </el-dialog>
  130. </div>
  131. </template>
  132. <script>
  133. import Ktletter from "./daikeComponents/KtLetter.vue";
  134. import KtOrder from "./daikeComponents/KtOrder.vue";
  135. export default {
  136. name:'daike',
  137. components: { Ktletter,KtOrder },
  138. data(){
  139. return{
  140. // 业务员信息
  141. userOptions:[],//可选人员列表
  142. deptName:'',
  143. activeName:'999',
  144. dialogVisible:false,
  145. salespersonData:[],
  146. salespersonForm:{},
  147. isdisabled:true,
  148. orderOption:[
  149. {
  150. lable:'报价中',
  151. value:'0',
  152. },{
  153. lable:'待核保',
  154. value:'1',
  155. },{
  156. lable:'已核保待缴费',
  157. value:'2',
  158. },{
  159. lable:'已承保',
  160. value:'3',
  161. },{
  162. lable:'核保退回',
  163. value:'4',
  164. },
  165. ],
  166. message:'',
  167. }
  168. },
  169. created(){
  170. this.$message({
  171. showClose: true,
  172. message: '请先输入业务员,再进行操作!!!',
  173. type: 'warning',
  174. duration:10000
  175. });
  176. },
  177. methods:{
  178. //业务列表双击选中事件
  179. reslistCurrentChange(row, column, event) {
  180. this.salespersonForm = row; //名称
  181. this.activeName='999'
  182. this.$refs.Ktletter.add()
  183. this.$refs.Ktletter.userId=row.userId
  184. this.$refs.Ktletter.obtainProtocol()
  185. this.dialogVisible = false;
  186. this.isdisabled=false
  187. },
  188. toChooseName(){
  189. const loading = this.$loading({
  190. lock: true,
  191. text: "Loading",
  192. spinner: "el-icon-loading",
  193. background: "rgba(0, 0, 0, 0.7)"
  194. });
  195. this.$api.task.getAllUsersByHospitality({... this.salespersonForm}).then(res => {
  196. if (res.code == "200") {
  197. this.salespersonData = res.data;
  198. loading.close();
  199. this.dialogVisible = true;
  200. } else {
  201. loading.close();
  202. this.$message.error(res.msg);
  203. }
  204. });
  205. },
  206. handleClick(tab){
  207. if(tab.index==0){
  208. this.$refs.Ktletter.add()
  209. }
  210. if(tab.index==1){
  211. this.$refs.KtOrder.userIdPor=this.salespersonForm.userId
  212. this.$refs.KtOrder.deptIdPor=this.salespersonForm.deptId
  213. this.$refs.KtOrder.statusPor=tab.name
  214. this.$refs.KtOrder.findPage()
  215. }
  216. if(tab.index>1){
  217. let ref = eval('this.$refs.refName' + Number(tab.name))[0]
  218. ref.userIdPor=this.salespersonForm.userId
  219. ref.deptIdPor=this.salespersonForm.deptId
  220. ref.statusPor=tab.name
  221. ref.findPage()
  222. }
  223. },
  224. orderEdit(data){
  225. this.activeName=data.activeName
  226. this.$refs.Ktletter.editingWay(data)
  227. this.$refs.Ktletter.obtainProtocol(data)
  228. }
  229. }
  230. }
  231. </script>
  232. <style lang="scss" scoped>
  233. .quotation-page{
  234. // border-radius: 6px;
  235. // border: 1px solid #ebeef5;
  236. // background-color: #fff;
  237. }
  238. .quotation-content{
  239. overflow-y: auto;
  240. height: 80vh;
  241. }
  242. </style>