edit2.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <!-- -->
  2. <template>
  3. <div class="tab4Edit2">
  4. <div class="top">设备情况</div>
  5. <div class="from">
  6. <el-form
  7. :model="ruleForm"
  8. :rules="rules"
  9. ref="ruleForm"
  10. label-width="130px"
  11. class="demo-ruleForm"
  12. >
  13. <el-form-item label="摄像头-启用:" prop="cameraStart">
  14. <el-input
  15. v-model.number="ruleForm.cameraStart"
  16. type="number"
  17. ></el-input>
  18. <span class="unit">个</span>
  19. </el-form-item>
  20. <el-form-item label="摄像头-停用:" prop="cameraStop">
  21. <el-input
  22. v-model.number="ruleForm.cameraStop"
  23. type="number"
  24. ></el-input>
  25. <span class="unit">个</span>
  26. </el-form-item>
  27. <el-form-item label="巡逻车-启用:" prop="cruiserStart">
  28. <el-input
  29. v-model.number="ruleForm.cruiserStart"
  30. type="number"
  31. ></el-input>
  32. <span class="unit">辆</span>
  33. </el-form-item>
  34. <el-form-item label="巡逻车-停用:" prop="cruiserStop">
  35. <el-input
  36. v-model.number="ruleForm.cruiserStop"
  37. type="number"
  38. ></el-input>
  39. <span class="unit">辆</span>
  40. </el-form-item>
  41. <el-form-item label="门禁锁-启用:" prop="doorStart">
  42. <el-input
  43. v-model.number="ruleForm.doorStart"
  44. type="number"
  45. ></el-input>
  46. <span class="unit">个</span>
  47. </el-form-item>
  48. <el-form-item label="门禁锁-停用:" prop="doorStop">
  49. <el-input
  50. v-model.number="ruleForm.doorStop"
  51. type="number"
  52. ></el-input>
  53. <span class="unit">个</span>
  54. </el-form-item>
  55. <el-form-item label="无人机-启用:" prop="aerialStart">
  56. <el-input
  57. v-model.number="ruleForm.aerialStart"
  58. type="number"
  59. ></el-input>
  60. <span class="unit">辆</span>
  61. </el-form-item>
  62. <el-form-item label="无人机-停用:" prop="aerialStop">
  63. <el-input
  64. v-model.number="ruleForm.aerialStop"
  65. type="number"
  66. ></el-input>
  67. <span class="unit">辆</span>
  68. </el-form-item>
  69. <el-form-item label="更新时间:">
  70. <i class="biaoshi"></i>
  71. <el-date-picker
  72. v-model="time"
  73. type="datetime"
  74. placeholder="选择日期时间"
  75. align="right"
  76. :picker-options="pickerOptions"
  77. >
  78. </el-date-picker>
  79. </el-form-item>
  80. </el-form>
  81. </div>
  82. <!-- 下面的按钮 -->
  83. <div class="btn">
  84. <el-button @click="$router.push('/layout/tab4')">返 回</el-button>
  85. <el-button type="primary" @click="btnOk">提 交</el-button>
  86. </div>
  87. </div>
  88. </template>
  89. <script>
  90. import { lotSave } from '@/apis/tab4'
  91. export default {
  92. name: 'tab4Edit2',
  93. components: {},
  94. data () {
  95. // 这里存放数据
  96. const validatePass = (rule, value, callback) => {
  97. if (value > 99999999.99) {
  98. callback(new Error('不能超过99999999.99'))
  99. } else {
  100. callback()
  101. }
  102. }
  103. return {
  104. pickerOptions: {
  105. shortcuts: [
  106. {
  107. text: '今天',
  108. onClick (picker) {
  109. picker.$emit('pick', new Date())
  110. }
  111. },
  112. {
  113. text: '昨天',
  114. onClick (picker) {
  115. const date = new Date()
  116. date.setTime(date.getTime() - 3600 * 1000 * 24)
  117. picker.$emit('pick', date)
  118. }
  119. },
  120. {
  121. text: '一周前',
  122. onClick (picker) {
  123. const date = new Date()
  124. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
  125. picker.$emit('pick', date)
  126. }
  127. }
  128. ]
  129. },
  130. disTime: '',
  131. time: '',
  132. myData: {},
  133. ruleForm: {
  134. cameraStart: '',
  135. cameraStop: '',
  136. cruiserStart: '',
  137. cruiserStop: '',
  138. doorStart: '',
  139. doorStop: '',
  140. aerialStart: '',
  141. aerialStop: ''
  142. },
  143. rules: {
  144. cameraStart: [
  145. { required: true, message: '不能为空', trigger: 'blur' },
  146. { validator: validatePass, trigger: 'blur' }
  147. ],
  148. cameraStop: [
  149. { required: true, message: '不能为空', trigger: 'blur' },
  150. { validator: validatePass, trigger: 'blur' }
  151. ],
  152. cruiserStart: [
  153. { required: true, message: '不能为空', trigger: 'blur' },
  154. { validator: validatePass, trigger: 'blur' }
  155. ],
  156. cruiserStop: [
  157. { required: true, message: '不能为空', trigger: 'blur' },
  158. { validator: validatePass, trigger: 'blur' }
  159. ],
  160. doorStart: [
  161. { required: true, message: '不能为空', trigger: 'blur' },
  162. { validator: validatePass, trigger: 'blur' }
  163. ],
  164. doorStop: [
  165. { required: true, message: '不能为空', trigger: 'blur' },
  166. { validator: validatePass, trigger: 'blur' }
  167. ],
  168. aerialStart: [
  169. { required: true, message: '不能为空', trigger: 'blur' },
  170. { validator: validatePass, trigger: 'blur' }
  171. ],
  172. aerialStop: [
  173. { required: true, message: '不能为空', trigger: 'blur' },
  174. { validator: validatePass, trigger: 'blur' }
  175. ]
  176. }
  177. }
  178. },
  179. // 监听属性 类似于data概念
  180. computed: {},
  181. // 监控data中的数据变化
  182. watch: {
  183. time (val) {
  184. const temp = this.moment(val).format('YYYY-MM-DD HH:mm:ss')
  185. this.disTime = temp
  186. }
  187. },
  188. // 方法集合
  189. methods: {
  190. // 点击提交
  191. async btnOk () {
  192. if (this.time === null) return this.$message.warning('时间不能为空!')
  193. try {
  194. await this.$refs.ruleForm.validate()
  195. const obj = {}
  196. obj.type = 'info'
  197. obj.id = Number(this.myData.id)
  198. obj.data = JSON.stringify(this.ruleForm)
  199. obj.userUpdateTime = this.disTime
  200. const res = await lotSave(obj)
  201. if (res.code === 0) {
  202. this.$message.success('修改成功')
  203. this.$router.push('/layout/tab4')
  204. }
  205. // console.log(999, res)
  206. // console.log(777777777777, obj)
  207. } catch (error) {
  208. console.log(error)
  209. }
  210. },
  211. getCurrentTime () {
  212. // 获取当前时间并打印
  213. var _this = this
  214. const yy = new Date().getFullYear()
  215. const mm = new Date().getMonth() + 1
  216. const dd = new Date().getDate()
  217. const hh = new Date().getHours()
  218. const mf =
  219. new Date().getMinutes() < 10
  220. ? '0' + new Date().getMinutes()
  221. : new Date().getMinutes()
  222. const ss =
  223. new Date().getSeconds() < 10
  224. ? '0' + new Date().getSeconds()
  225. : new Date().getSeconds()
  226. _this.gettime = yy + '/' + mm + '/' + dd + ' ' + hh + ':' + mf + ':' + ss
  227. this.time = _this.gettime
  228. // console.log(_this.gettime)
  229. }
  230. },
  231. // 生命周期 - 创建完成(可以访问当前this实例)
  232. async created () {
  233. this.myData = this.$route.query
  234. console.log(998, this.myData)
  235. for (const k in this.myData) {
  236. this.ruleForm[k] = this.myData[k]
  237. }
  238. this.getCurrentTime()
  239. // console.log(999, this.$route.query)
  240. },
  241. // 生命周期 - 挂载完成(可以访问DOM元素)
  242. mounted () {},
  243. beforeCreate () {}, // 生命周期 - 创建之前
  244. beforeMount () {}, // 生命周期 - 挂载之前
  245. beforeUpdate () {}, // 生命周期 - 更新之前
  246. updated () {}, // 生命周期 - 更新之后
  247. beforeDestroy () {}, // 生命周期 - 销毁之前
  248. destroyed () {}, // 生命周期 - 销毁完成
  249. activated () {} // 如果页面有keep-alive缓存功能,这个函数会触发
  250. }
  251. </script>
  252. <style lang='less' scoped>
  253. .tab4Edit2 {
  254. height: 100%;
  255. position: relative;
  256. .top {
  257. height: 40px;
  258. line-height: 40px;
  259. background-color: #fbfbfb;
  260. padding-left: 20px;
  261. }
  262. .from {
  263. margin-top: 30px;
  264. width: 50%;
  265. .unit {
  266. position: absolute;
  267. right: -40px;
  268. top: 0;
  269. }
  270. }
  271. .btn {
  272. display: flex;
  273. justify-content: space-between;
  274. width: 200px;
  275. position: absolute;
  276. left: 50%;
  277. bottom: 30px;
  278. transform: translateX(-50%);
  279. }
  280. }
  281. </style>