carManage-add-or-update.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. <template>
  2. <el-dialog
  3. :title="!dataForm.id ? '车辆注册' : '修改'"
  4. :close-on-click-modal="false"
  5. :visible.sync="visible" width="80%">
  6. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="125px">
  7. <el-form-item label="车队名称" prop="fleetCompanyId" style="width: 325px">
  8. <!-- <el-input v-model="dataForm.fleetCompanyId" placeholder="车队id"></el-input>-->
  9. <el-select v-model="dataForm.fleetCompanyId" style="width: 200px" placeholder="请选择">
  10. <el-option
  11. v-for="item in optionsProjectTypeItem"
  12. :key="item.id"
  13. :label="item.companyName"
  14. :value="item.id">
  15. </el-option>
  16. </el-select>
  17. </el-form-item>
  18. <el-form-item label="车牌号" prop="carNum" style="width: 325px">
  19. <el-input v-model="dataForm.carNum" style="width: 200px" placeholder="车牌号"></el-input>
  20. </el-form-item>
  21. <el-form-item label="驾驶员" prop="carNum" style="width: 325px">
  22. <el-input v-model="dataForm.carNum" style="width: 200px" placeholder="驾驶员"></el-input>
  23. </el-form-item>
  24. <el-form-item label="挂号" prop="hangNum" style="width: 325px">
  25. <el-input v-model="dataForm.hangNum" style="width: 200px" placeholder="挂号"></el-input>
  26. </el-form-item>
  27. <el-form-item label="燃油类型" prop="fuelType" style="width: 325px">
  28. <el-input v-model="dataForm.fuelType" style="width: 200px" placeholder="燃油类型"></el-input>
  29. </el-form-item>
  30. <el-form-item label="车辆类型" prop="carType" style="width: 325px">
  31. <el-input v-model="dataForm.carType" style="width: 200px" placeholder="车辆类型"></el-input>
  32. </el-form-item>
  33. <el-form-item label="车辆名称" prop="carName" style="width: 325px">
  34. <el-input v-model="dataForm.carName" style="width: 200px" placeholder="车辆名称"></el-input>
  35. </el-form-item>
  36. <el-form-item label="车辆品牌" prop="carBrand" style="width: 325px">
  37. <el-input v-model="dataForm.carBrand" style="width: 200px" placeholder="车辆品牌"></el-input>
  38. </el-form-item>
  39. <el-form-item label="制造单位" prop="manufactureUnit" style="width: 325px">
  40. <el-input v-model="dataForm.manufactureUnit" style="width: 200px" placeholder="制造单位"></el-input>
  41. </el-form-item>
  42. <el-form-item label="发证机关" prop="officeOfCertificate" style="width: 325px">
  43. <el-input v-model="dataForm.officeOfCertificate" style="width: 200px" placeholder="发证机关"></el-input>
  44. </el-form-item>
  45. <el-form-item label="牵引车辆型号" prop="pullCarType" style="width: 325px">
  46. <el-input v-model="dataForm.pullCarType" style="width: 200px" placeholder="牵引车辆型号"></el-input>
  47. </el-form-item>
  48. <el-form-item label="牵引车车架号" prop="pullCarShelfNum" style="width: 325px">
  49. <el-input v-model="dataForm.pullCarShelfNum" style="width: 200px" placeholder="牵引车车架号"></el-input>
  50. </el-form-item>
  51. <el-form-item label="挂车型号" prop="mountCarType" style="width: 325px">
  52. <el-input v-model="dataForm.mountCarType" style="width: 200px" placeholder="挂车型号"></el-input>
  53. </el-form-item>
  54. <el-form-item label="挂车车架号" prop="mountCarNum" style="width: 325px">
  55. <el-input v-model="dataForm.mountCarNum" style="width: 200px" placeholder="挂车车架号"></el-input>
  56. </el-form-item>
  57. <el-form-item label="发动机型号" prop="engine" style="width: 325px">
  58. <el-input v-model="dataForm.engine" style="width: 200px" placeholder="发动机型号"></el-input>
  59. </el-form-item>
  60. <el-form-item label="核载人数" prop="carLoadPersion" style="width: 325px">
  61. <el-input v-model="dataForm.carLoadPersion" style="width: 200px" placeholder="核载人数"></el-input>
  62. </el-form-item>
  63. <el-form-item label="购车日期" prop="buyCarDate" style="width: 325px">
  64. <!-- <el-input v-model="dataForm.buyCarDate" placeholder="购车日期"></el-input>-->
  65. <el-date-picker
  66. style="width: 200px"
  67. value-format="yyyy-MM-dd HH:mm:ss"
  68. v-model="dataForm.buyCarDate"
  69. type="date"
  70. placeholder="创建时间">
  71. </el-date-picker>
  72. </el-form-item>
  73. <el-form-item label="注册日期" prop="regiestDate" style="width: 325px">
  74. <!-- <el-input v-model="dataForm.regiestDate" placeholder="注册日期"></el-input>-->
  75. <el-date-picker
  76. style="width: 200px"
  77. value-format="yyyy-MM-dd HH:mm:ss"
  78. v-model="dataForm.regiestDate"
  79. type="date"
  80. placeholder="创建时间">
  81. </el-date-picker>
  82. </el-form-item>
  83. <el-form-item label="报废日期" prop="abandonDate" style="width: 325px">
  84. <!-- <el-input v-model="dataForm.abandonDate" placeholder="报废日期"></el-input>-->
  85. <el-date-picker
  86. style="width: 200px"
  87. value-format="yyyy-MM-dd HH:mm:ss"
  88. v-model="dataForm.abandonDate"
  89. type="date"
  90. placeholder="创建时间">
  91. </el-date-picker>
  92. </el-form-item>
  93. <el-form-item label="外阔尺寸mm" prop="outerSize" style="width: 325px">
  94. <el-input v-model="dataForm.outerSize" style="width: 200px" placeholder="外阔尺寸mm"></el-input>
  95. </el-form-item>
  96. <el-form-item label="总重量kg" prop="sumWeight" style="width: 325px">
  97. <el-input v-model="dataForm.sumWeight" style="width: 200px" placeholder="总重量kg"></el-input>
  98. </el-form-item>
  99. <el-form-item label="核定重量kg" prop="vouchWeight" style="width: 325px">
  100. <el-input v-model="dataForm.vouchWeight" style="width: 200px" placeholder="核定重量kg"></el-input>
  101. </el-form-item>
  102. <el-form-item label="装备质量kg" prop="equipWeight" style="width: 325px">
  103. <el-input v-model="dataForm.equipWeight" style="width: 200px" placeholder="装备质量kg"></el-input>
  104. </el-form-item>
  105. <el-collapse accordion>
  106. <el-collapse-item title="图片上传">
  107. <el-form-item label="行驶证头图片" prop="drivingLicenseSrc" style="width: 325px">
  108. <!-- <el-input v-model="dataForm.drivingLicenseSrc" placeholder="行驶证头src"></el-input>-->
  109. <el-upload
  110. class="upload-demo"
  111. :limit="1"
  112. :multiple="false"
  113. :action="uploadURL"
  114. :file-list="fileList"
  115. :headers = "uploadHeaders"
  116. :on-success="handleSuccess"
  117. :on-remove="handleRemove"
  118. >
  119. <el-button size="small" type="primary">点击上传</el-button>
  120. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  121. </el-upload>
  122. </el-form-item>
  123. <el-form-item label="行驶证挂件图片" prop="drivingPendantSrc" style="width: 325px">
  124. <!-- <el-input v-model="dataForm.drivingPendantSrc" placeholder="行驶证挂件src"></el-input>-->
  125. <el-upload
  126. class="upload-demo"
  127. :limit="1"
  128. :multiple="false"
  129. :action="uploadURL"
  130. :file-list="fileList"
  131. :headers = "uploadHeaders"
  132. :on-success="handleSuccess1"
  133. :on-remove="handleRemove"
  134. list-type="picture">
  135. <el-button size="small" type="primary">点击上传</el-button>
  136. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  137. </el-upload>
  138. </el-form-item>
  139. <el-form-item label="运营证头图片" prop="operationLicenseSrc" style="width: 325px">
  140. <!-- <el-input v-model="dataForm.operationLicenseSrc" placeholder="运营证头src"></el-input>-->
  141. <el-upload
  142. class="upload-demo"
  143. :limit="1"
  144. :multiple="false"
  145. :action="uploadURL"
  146. :file-list="fileList"
  147. :headers = "uploadHeaders"
  148. :on-success="handleSuccess2"
  149. :on-remove="handleRemove"
  150. list-type="picture">
  151. <el-button size="small" type="primary">点击上传</el-button>
  152. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  153. </el-upload>
  154. </el-form-item>
  155. <el-form-item label="技术评定证书图片" prop="technologySrc" style="width: 325px">
  156. <!-- <el-input v-model="dataForm.technologySrc" placeholder="技术评定证书src"></el-input>-->
  157. <el-upload
  158. class="upload-demo"
  159. :limit="1"
  160. :multiple="false"
  161. :action="uploadURL"
  162. :file-list="fileList"
  163. :headers = "uploadHeaders"
  164. :on-success="handleSuccess3"
  165. :on-remove="handleRemove"
  166. list-type="picture">
  167. <el-button size="small" type="primary">点击上传</el-button>
  168. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  169. </el-upload>
  170. </el-form-item>
  171. <el-form-item label="营运挂载图片" prop="drivingLoadSrc" style="width: 325px">
  172. <!-- <el-input v-model="dataForm.drivingLoadSrc" placeholder="营运挂载src"></el-input>-->
  173. <el-upload
  174. class="upload-demo"
  175. :limit="1"
  176. :multiple="false"
  177. :action="uploadURL"
  178. :file-list="fileList"
  179. :headers = "uploadHeaders"
  180. :on-success="handleSuccess4"
  181. :on-remove="handleRemove"
  182. list-type="picture">
  183. <el-button size="small" type="primary">点击上传</el-button>
  184. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  185. </el-upload>
  186. </el-form-item>
  187. <el-form-item label="二级维护图片" prop="secondLvMaintainSrc" style="width: 325px">
  188. <!-- <el-input v-model="dataForm.secondLvMaintainSrc" placeholder="二级维护src"></el-input>-->
  189. <el-upload
  190. class="upload-demo"
  191. :limit="1"
  192. :multiple="false"
  193. :action="uploadURL"
  194. :file-list="fileList"
  195. :headers = "uploadHeaders"
  196. :on-success="handleSuccess5"
  197. :on-remove="handleRemove"
  198. list-type="picture">
  199. <el-button size="small" type="primary">点击上传</el-button>
  200. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  201. </el-upload>
  202. </el-form-item>
  203. <el-form-item label="交强险图片" prop="tafficConstranintInsuranceSrc" style="width: 325px">
  204. <!-- <el-input v-model="dataForm.tafficConstranintInsuranceSrc" placeholder="交强险src"></el-input>-->
  205. <el-upload
  206. class="upload-demo"
  207. :limit="1"
  208. :multiple="false"
  209. :action="uploadURL"
  210. :file-list="fileList"
  211. :headers = "uploadHeaders"
  212. :on-success="handleSuccess6"
  213. :on-remove="handleRemove"
  214. list-type="picture">
  215. <el-button size="small" type="primary">点击上传</el-button>
  216. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  217. </el-upload>
  218. </el-form-item>
  219. <el-form-item label="商业保险图片" prop="" style="width: 325px">
  220. <!-- <el-input v-model="dataForm.businessInsuranceSrc" placeholder="商业保险src"></el-input>-->
  221. <el-upload
  222. class="upload-demo"
  223. :limit="1"
  224. :multiple="false"
  225. :action="uploadURL"
  226. :file-list="fileList"
  227. :headers = "uploadHeaders"
  228. :on-success="handleSuccess7"
  229. :on-remove="handleRemove"
  230. list-type="picture">
  231. <el-button size="small" type="primary">点击上传</el-button>
  232. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  233. </el-upload>
  234. </el-form-item>
  235. <el-form-item label="承运人保险图片" prop="accpetCarrageInsuranceSrc" style="width: 325px">
  236. <!-- <el-input v-model="dataForm.accpetCarrageInsuranceSrc" placeholder="承运人保险src"></el-input>-->
  237. <el-upload
  238. class="upload-demo"
  239. :limit="1"
  240. :multiple="false"
  241. :action="uploadURL"
  242. :file-list="fileList"
  243. :headers = "uploadHeaders"
  244. :on-success="handleSuccess8"
  245. :on-remove="handleRemove"
  246. list-type="picture">
  247. <el-button size="small" type="primary">点击上传</el-button>
  248. <!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>-->
  249. </el-upload>
  250. </el-form-item>
  251. </el-collapse-item>
  252. </el-collapse>
  253. </el-form>
  254. <span slot="footer" class="dialog-footer">
  255. <el-button @click="visible = false">取消</el-button>
  256. <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
  257. </span>
  258. </el-dialog>
  259. </template>
  260. <script>
  261. export default {
  262. props: {
  263. dataForm: {
  264. type: Object,
  265. require: false
  266. }
  267. },
  268. data () {
  269. return {
  270. visible: false,
  271. msg: '',
  272. dataRule: {
  273. fleetCompanyId: [
  274. {required: true, message: '请输入车队id', trigger: 'blur'}
  275. ],
  276. carNum: [
  277. {required: true, message: '请输入车牌号', trigger: 'blur'}
  278. ]
  279. },
  280. optionsProjectTypeItem: [],
  281. fileList: [],
  282. uploadHeaders: {
  283. // localStorage.setItem('token', data.token)
  284. token: localStorage.getItem('token')
  285. },
  286. uploadURL: 'http://test.echepei.com/api/admin/fleet/carManage/uplodaImgForDrivingLicense'
  287. }
  288. },
  289. methods: {
  290. init () {
  291. this.visible = true
  292. this.needCondition()
  293. },
  294. // 获取下拉选项
  295. needCondition () {
  296. // this.$http({
  297. // url: this.$http.adornUrl(`/fleet/companyMsg/list`),
  298. // method: 'post'
  299. // }).then(({data}) => {
  300. // if (data && data.code === 0) {
  301. // this.optionsProjectTypeItem = data.list
  302. // } else {
  303. // this.$message.error(data.msg)
  304. // }
  305. // })
  306. },
  307. // 表单提交
  308. dataFormSubmit () {
  309. this.$refs['dataForm'].validate((valid) => {
  310. if (valid) {
  311. this.$http({
  312. url: this.$http.adornUrl(`/fleet/carManage/${!this.dataForm.id ? 'save' : 'update'}`),
  313. method: 'post',
  314. data: this.$http.adornData(this.dataForm)
  315. }).then(({data}) => {
  316. if (data && data.code === 0) {
  317. this.$message({
  318. message: '操作成功',
  319. type: 'success',
  320. duration: 1500,
  321. onClose: () => {
  322. this.visible = false
  323. this.$emit('refreshDataList')
  324. }
  325. })
  326. } else {
  327. this.$message.error(data.msg)
  328. }
  329. })
  330. }
  331. })
  332. }, // 图片上传回调
  333. handleSuccess (response) {
  334. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  335. console.log(response)
  336. this.dataForm.drivingLicenseSrc = response.msg
  337. },
  338. handleSuccess1 (response) {
  339. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  340. console.log(response)
  341. this.dataForm.drivingPendantSrc = response.msg
  342. },
  343. handleSuccess2 (response) {
  344. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  345. console.log(response)
  346. this.dataForm.operationLicenseSrc = response.msg
  347. },
  348. handleSuccess3 (response) {
  349. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  350. console.log(response)
  351. this.dataForm.technologySrc = response.msg
  352. },
  353. handleSuccess4 (response) {
  354. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  355. console.log(response)
  356. this.dataForm.drivingLoadSrc = response.msg
  357. },
  358. handleSuccess5 (response) {
  359. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  360. console.log(response)
  361. this.dataForm.secondLvMaintainSrc = response.msg
  362. },
  363. handleSuccess6 (response) {
  364. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  365. console.log(response)
  366. this.dataForm.tafficConstranintInsuranceSrc = response.msg
  367. },
  368. handleSuccess7 (response) {
  369. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  370. console.log(response)
  371. this.dataForm.businessInsuranceSrc = response.msg
  372. },
  373. handleSuccess8 (response) {
  374. // 这里可以写文件上传成功后的处理,但是一定要记得给imgPath赋值
  375. console.log(response)
  376. this.dataForm.accpetCarrageInsuranceSrc = response.msg
  377. },
  378. // 文件列表移除文件时的钩子
  379. handleRemove (response) {
  380. this.dataForm.imgPath = ''
  381. }
  382. }
  383. }
  384. </script>
  385. <style scoped>
  386. .el-form-item {
  387. width: 49%;
  388. margin-bottom: 20px;
  389. display: inline-block;
  390. }
  391. .el-select {
  392. display: block;
  393. }
  394. .upload-demo {
  395. margin-left: 50px;
  396. }
  397. </style>