Create.vue 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <template>
  2. <uni-drawer ref="drawer" mode="left" :mask-click="false" width="85%" :maskClick='true'>
  3. <scroll-view class="scroll-view" scroll-y="true">
  4. <uni-section :title="(type==='add'?'新增':'编辑') +'企业' " type="line"></uni-section>
  5. <view class="form-wrap" >
  6. <uni-forms ref="form" label-position="top" :rules="rules" :model="form" :label-width="300">
  7. <uni-forms-item label="企业名称" name="entName" required>
  8. <uni-easyinput v-model="form.entName" placeholder="请输入企业名称" />
  9. </uni-forms-item>
  10. <uni-forms-item label="隐患分类" name="entCatId" required>
  11. <uni-data-select v-model="form.entCatId" :localdata="entCats" placeholder="请选择企业分类" :clear="false"></uni-data-select>
  12. </uni-forms-item>
  13. <uni-forms-item label="隐患等级" name="dangerLevel" required>
  14. <uni-data-select v-model="form.dangerLevel" :localdata="dangerLevelOptions" placeholder="请选择隐患等级" :clear="false"></uni-data-select>
  15. </uni-forms-item>
  16. <uni-forms-item label="统一信用编码">
  17. <uni-easyinput v-model="form.entUscc" placeholder="请输入统一信用编码" />
  18. </uni-forms-item>
  19. <uni-forms-item label="法定代表人">
  20. <uni-easyinput v-model="form.entLegalRepresentative" placeholder="请输入法定代表人" />
  21. </uni-forms-item>
  22. <uni-forms-item label="隐患描述">
  23. <uni-easyinput type="textarea" :maxlength="300"
  24. v-model="form.dangerDesc" autoHeight
  25. placeholder="请输入隐患描述"></uni-easyinput>
  26. <view class="word-limit">{{form.dangerDesc.length||0}}/300</view>
  27. </uni-forms-item>
  28. <uni-forms-item label="生产经营地址">
  29. <uni-easyinput v-model="form.entAddress" placeholder="请输入生产经营地址" />
  30. </uni-forms-item>
  31. <uni-forms-item label="负责人">
  32. <uni-easyinput v-model="form.charger" placeholder="请输入负责人" />
  33. </uni-forms-item>
  34. <uni-forms-item label="负责人电话">
  35. <uni-easyinput v-model="form.chargerPhone" type="number" placeholder="请输入负责人电话" />
  36. </uni-forms-item>
  37. <uni-forms-item label="安全负责人">
  38. <uni-easyinput v-model="form.safetyManager" placeholder="请输入安全负责人" />
  39. </uni-forms-item>
  40. <uni-forms-item label="安全负责人电话">
  41. <uni-easyinput v-model="form.safetyManagerPhone" type="number" placeholder="请输入安全负责人电话" />
  42. </uni-forms-item>
  43. <uni-forms-item label="从业人员数量">
  44. <uni-easyinput v-model="form.staffNum" type="number" placeholder="请输入从业人员数量" />
  45. </uni-forms-item>
  46. <uni-forms-item label="特种作业人员数量">
  47. <uni-easyinput v-model="form.staffSpecialNum" type="number" placeholder="请输入特种作业人员数量" />
  48. </uni-forms-item>
  49. <uni-forms-item label="专职安全生产管理人员数量">
  50. <uni-easyinput v-model="form.staffSafetyNum" type="number" placeholder="请输入专职安全生产管理人员数量" />
  51. </uni-forms-item>
  52. <uni-forms-item label="注册安全工程师人员数">
  53. <uni-easyinput v-model="form.staffCertifiedEngineerNum" type="number" placeholder="请输入注册安全工程师人员数" />
  54. </uni-forms-item>
  55. <uni-forms-item label="安全标准化等级">
  56. <uni-data-select v-model="form.safetyStandardLevel" :localdata="standardLevelOptions" placeholder="请选择企业分类" :clear="false"></uni-data-select>
  57. </uni-forms-item>
  58. <uni-forms-item label="安全许可证号码">
  59. <uni-easyinput v-model="form.staffSafetyNum" placeholder="请输入安全许可证号码" />
  60. </uni-forms-item>
  61. <uni-forms-item label="是否重点企业">
  62. <uni-data-checkbox v-model="form.isMajor" :localdata="isMajors" />
  63. </uni-forms-item>
  64. </uni-forms>
  65. <view class="handle-container">
  66. <button class="save" type="primary" @click="onSubmit">保存</button>
  67. <button class="cancel" type="default" @click="close">取消</button>
  68. </view>
  69. </view>
  70. </scroll-view>
  71. </uni-drawer>
  72. </template>
  73. <script>
  74. import dangerApi from '@/api/industry.js'
  75. export default{
  76. name:"CreateDanger",
  77. computed:{
  78. entCats(){
  79. let entCats=uni.getStorageSync('entCats')
  80. if(!entCats)return []
  81. return entCats.map(item=>{
  82. return{
  83. value:item.entCatId,
  84. text:item.entCatTitle
  85. }
  86. })
  87. }
  88. },
  89. data(){
  90. return{
  91. type:undefined,
  92. rules:{
  93. entName:{
  94. rules:[
  95. {
  96. required: true,
  97. errorMessage:"请输入企业名称"
  98. }
  99. ],
  100. validateTrigger:'submit'
  101. },
  102. entCatId:{
  103. rules:[
  104. {
  105. required: true,
  106. errorMessage:"请选择企业分类"
  107. }
  108. ],
  109. validateTrigger:'submit'
  110. }
  111. },
  112. dangerLevelOptions:[
  113. { value: 0, text: '末知' },
  114. { value: 1, text: '重大' },
  115. { value: 2, text: '较大' },
  116. { value: 3, text: '一般' },
  117. { value: 4, text: '较小' }
  118. ],
  119. statusOptions:[
  120. { value: 0, text: '处理中' },
  121. { value: 1, text: '已整改' }
  122. ],
  123. isMajors:[
  124. {value:1,text:'是'},
  125. {value:0,text:'否'},
  126. ],
  127. form:{
  128. entId: undefined,
  129. dangerId: 0,
  130. dangerCatId: 1,
  131. dangerCatTitle: '',
  132. dangerTitle: '',
  133. dangerCode: '',
  134. dangerLocation: '',
  135. dangerLevel: 2,
  136. dangerDesc: '',
  137. submitTime: '',
  138. submitRemark: '',
  139. dangerDeadLine: '',
  140. rectifyTime: '',
  141. dangerReason: '',
  142. rectifyCat: 1,
  143. rectifyRemark: '',
  144. acceptTime: '',
  145. acceptRemark: '',
  146. finishTime: '',
  147. status: 0,
  148. attachList: []
  149. }
  150. }
  151. },
  152. methods:{
  153. resetForm(){
  154. this.form={
  155. entId: undefined,
  156. dangerId: 0,
  157. dangerCatId: 1,
  158. dangerCatTitle: '',
  159. dangerTitle: '',
  160. dangerCode: '',
  161. dangerLocation: '',
  162. dangerLevel: 2,
  163. dangerDesc: '',
  164. submitTime: '',
  165. submitRemark: '',
  166. dangerDeadLine: '',
  167. rectifyTime: '',
  168. dangerReason: '',
  169. rectifyCat: 1,
  170. rectifyRemark: '',
  171. acceptTime: '',
  172. acceptRemark: '',
  173. finishTime: '',
  174. status: 0,
  175. attachList: []
  176. }
  177. },
  178. onSubmit(){
  179. this.$refs.form.validate().then(res=>{
  180. let submitFx=this.type==='add'?dangerApi.create:dangerApi.update
  181. submitFx(this.form).then(()=>{
  182. uni.showToast({
  183. icon:"none",
  184. title:"成功!!"
  185. })
  186. this.$emit('success')
  187. this.close();
  188. })
  189. }).catch(err =>{
  190. uni.showToast({
  191. icon:"none",
  192. title:"请检查填写信息!"
  193. })
  194. })
  195. },
  196. show({type,item}){
  197. this.resetForm()
  198. this.form={...this.form,...item}
  199. this.type=type
  200. this.$refs.drawer.open()
  201. },
  202. close(){
  203. this.$refs.drawer.close()
  204. }
  205. }
  206. }
  207. </script>
  208. <style lang="scss" scoped>
  209. .scroll-view {
  210. height: 100%;
  211. padding: 20rpx;
  212. box-sizing: border-box;
  213. .form-wrap{
  214. padding:40rpx;
  215. .handle-container{
  216. display: flex;
  217. justify-content: center;
  218. align-items: center;
  219. button{
  220. width: 160rpx;
  221. padding: 20rpx 16rpx;
  222. line-height: 1;
  223. font-size: 28rpx;
  224. &.save{
  225. background-color: #007aff;
  226. }
  227. }
  228. }
  229. .word-limit{
  230. text-align: right;
  231. padding: 10rpx 0;
  232. color: #999;
  233. font-size: 26rpx;
  234. }
  235. }
  236. }
  237. </style>