addCarDriver.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <!-- 添加司机信息 -->
  3. <div class="addWagonLoad">
  4. <PageTitle>返回</PageTitle>
  5. <el-divider content-position="left">司机信息</el-divider>
  6. <div class="form-box" style="margin-right: 10rem">
  7. <dil-form :formId="311" v-model="form1" ref="from1"></dil-form>
  8. </div>
  9. <div class="inputBox">
  10. <span class="text">所属承运商</span>
  11. <el-autocomplete
  12. v-model="state"
  13. @input="onInput"
  14. :fetch-suggestions="querySearch"
  15. placeholder="请输入内容"
  16. :trigger-on-focus="false"
  17. @select="handleSelect"
  18. ></el-autocomplete>
  19. </div>
  20. <div class="photoBox">
  21. <el-upload
  22. class="upload-demo"
  23. action="https://jsonplaceholder.typicode.com/posts/"
  24. :on-preview="handlePreview"
  25. :on-remove="handleRemove"
  26. :before-remove="beforeRemove"
  27. multiple
  28. :limit="1"
  29. :on-exceed="handleExceed"
  30. :file-list="fileList"
  31. >
  32. <div>驾驶证
  33. <el-button size="small" type="primary">点击上传</el-button>
  34. <div slot="tip" class="el-upload__tip">
  35. </div>
  36. </div>
  37. </el-upload>
  38. </div>
  39. <div class="button-box">
  40. <el-button @click="cancel">取消</el-button>
  41. <el-button type="primary" @click="makeSure">确定</el-button>
  42. </div>
  43. </div>
  44. </template>
  45. <script>
  46. import PageTitle from "@/components/Page/Title";
  47. export default {
  48. components: { PageTitle },
  49. data() {
  50. return {
  51. restaurants: [],
  52. form1: {},
  53. value: undefined,
  54. fileList: [],
  55. carrierIds:"",
  56. state: "",
  57. sex: "男",
  58. };
  59. },
  60. mounted() {
  61. this.form1.driverSex = this.sex;
  62. },
  63. methods: {
  64. onInput() {
  65. this.axios.post(
  66. "/api/v1/rms/getCarrierName?state="+this.state,
  67. )
  68. .then((res) => {
  69. if(res.data.code == "200"){
  70. res.data.data.forEach(element => {
  71. this.restaurants.push({
  72. value:element.carrierName,
  73. carrierIds:element.carrierId
  74. })
  75. });
  76. }
  77. });
  78. },
  79. querySearch(queryString, cb) {
  80. var restaurants = this.restaurants;
  81. var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
  82. // 调用 callback 返回建议列表的数据
  83. cb(results);
  84. },
  85. createFilter(queryString) {
  86. return (restaurant) => {
  87. return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
  88. };
  89. },
  90. handleSelect(item){
  91. this.carrierIds=item.carrierIds;
  92. console.log(item)
  93. },
  94. handleRemove(file, fileList) {
  95. console.log(file, fileList);
  96. },
  97. handlePreview(file) {
  98. console.log(file);
  99. },
  100. handleExceed(files, fileList) {
  101. this.$message.warning(
  102. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
  103. files.length + fileList.length
  104. } 个文件`
  105. );
  106. },
  107. beforeRemove(file, fileList) {
  108. return this.$confirm(`确定移除 ${file.name}?`);
  109. },
  110. makeSure() {
  111. console.log(this.form1);
  112. let reg = new RegExp(/^[0-9]*$/);
  113. let RmsCarDriver = {
  114. driverName: this.form1.driverName,
  115. driverSex: this.form1.driverSex,
  116. driverAge: this.form1.driverAge,
  117. driverIdentityCard: this.form1.driverIdentityCard,
  118. driverPhone: this.form1.driverPhone,
  119. transportTypeId: this.form1.transportTypeId,
  120. // carrierId: this.form1.carrierId,
  121. driverPermitNo: this.form1.driverPermitNo,
  122. driverLicence: this.form1.driverLicence,
  123. driverLicence: this.form1.driverLicence,
  124. driverLicence: this.form1.driverLicence,
  125. state:this.state,
  126.         carrierName:this.state,
  127.         carrierIds: this.carrierIds,
  128. };
  129. if (
  130. reg.test(RmsCarDriver.driverAge) == false ||
  131. reg.test(RmsCarDriver.driverPhone) == false
  132. )
  133. this.$message.error("输入的格式不正确");
  134. else if(
  135. RmsCarDriver.driverName==null ||
  136. RmsCarDriver.driverSex==null ||
  137. RmsCarDriver.driverAge==null ||
  138. RmsCarDriver.driverIdentityCard==null ||
  139. RmsCarDriver.driverPhone==null ||
  140. RmsCarDriver.transportTypeId==null ||
  141. RmsCarDriver.carrierIds==null
  142. // RmsCarDriver.carrierId==null
  143. )this.$message.error("存在空值!");
  144. else
  145. this.axios
  146. .post("/api/v1/rms/insertCarDriver", RmsCarDriver)
  147. .then((res) => {
  148. if (res.data.code == 200) {
  149. this.$message({
  150. type: "success",
  151. message: "新增成功!",
  152. });
  153. // this.$refs.table.refreshData();
  154. this.$router.go(-1);
  155. } else {
  156. this.$message.error("新增失败,可能存在重复!");
  157. }
  158. this.$refs['table'].resetField();
  159. });
  160. },
  161. // 取消
  162. cancel() {
  163. this.$router.go(-1);
  164. },
  165. },
  166. };
  167. </script>
  168. <style lang='scss'>
  169. .button-box{
  170. display: flex;
  171. text-align: center;
  172. align-items: center;
  173. justify-content: center;
  174. margin-top: 0.3125rem;
  175. margin-bottom: 1.25rem;
  176. }
  177. .inputBox{
  178. display: flex;
  179. text-align: center;
  180. align-items: center;
  181. justify-content: center;
  182. margin-top: 0.1000rem;
  183. margin-bottom: 0.25rem;
  184. margin-left: -12.5rem;
  185. }
  186. .photoBox{
  187. display: flex;
  188. text-align: center;
  189. align-items: center;
  190. justify-content: center;
  191. margin-top: 0.1000rem;
  192. margin-bottom: 0.25rem;
  193. margin-left: -18rem;
  194. }
  195. .form-box{
  196. display:flex;
  197. justify-content: center;
  198. .el-form-item{
  199. display:flex;
  200. justify-content: center;
  201. .el-form-item__label{
  202. display:flex;
  203. align-items: center;
  204. }
  205. .el-form-item__content{
  206. .el-input{
  207. .el-input__inner{
  208. width:250px;
  209. }
  210. }
  211. }
  212. }
  213. }
  214. </style>