Create.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  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="统一信用编码">
  14. <uni-easyinput v-model="form.entUscc" placeholder="请输入统一信用编码" />
  15. </uni-forms-item>
  16. <uni-forms-item label="法定代表人">
  17. <uni-easyinput v-model="form.entLegalRepresentative" placeholder="请输入法定代表人" />
  18. </uni-forms-item>
  19. <uni-forms-item label="经营范围">
  20. <uni-easyinput type="textarea" :maxlength="300"
  21. v-model="form.entBusinessScope" autoHeight
  22. placeholder="请输入经营范围"></uni-easyinput>
  23. <view class="word-limit">{{form.entBusinessScope.length||0}}/300</view>
  24. </uni-forms-item>
  25. <uni-forms-item label="生产经营地址">
  26. <uni-easyinput v-model="form.entAddress" placeholder="请输入生产经营地址" />
  27. </uni-forms-item>
  28. <uni-forms-item label="负责人">
  29. <uni-easyinput v-model="form.charger" placeholder="请输入负责人" />
  30. </uni-forms-item>
  31. <uni-forms-item label="负责人电话">
  32. <uni-easyinput v-model="form.chargerPhone" type="number" placeholder="请输入负责人电话" />
  33. </uni-forms-item>
  34. <uni-forms-item label="安全负责人">
  35. <uni-easyinput v-model="form.safetyManager" placeholder="请输入安全负责人" />
  36. </uni-forms-item>
  37. <uni-forms-item label="安全负责人电话">
  38. <uni-easyinput v-model="form.safetyManagerPhone" type="number" placeholder="请输入安全负责人电话" />
  39. </uni-forms-item>
  40. <uni-forms-item label="是否设置安全机构">
  41. <uni-data-checkbox v-model="form.ifSafetyDepartment" :localdata="[{value:1,text:'有'},{value:0,text:'无'}]" />
  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-item label="说明">
  65. <uni-easyinput type="textarea" :maxlength="500"
  66. v-model="form.remark" autoHeight
  67. placeholder="请输入备注"></uni-easyinput>
  68. <view class="word-limit">{{form.remark.length||0}}/500</view>
  69. </uni-forms-item>
  70. </uni-forms>
  71. <view class="handle-container">
  72. <button class="save" type="primary" @click="onSubmit">保存</button>
  73. <button class="cancel" type="default" @click="close">取消</button>
  74. </view>
  75. </view>
  76. </scroll-view>
  77. </uni-drawer>
  78. </template>
  79. <script>
  80. import industryApi from '@/api/industry.js'
  81. export default{
  82. name:"CreateIndustry",
  83. computed:{
  84. entCats(){
  85. let entCats=uni.getStorageSync('entCats')
  86. if(!entCats)return []
  87. return entCats.map(item=>{
  88. return{
  89. value:item.entCatId,
  90. text:item.entCatTitle
  91. }
  92. })
  93. }
  94. },
  95. data(){
  96. return{
  97. type:undefined,
  98. rules:{
  99. entName:{
  100. rules:[
  101. {
  102. required: true,
  103. errorMessage:"请输入企业名称"
  104. }
  105. ],
  106. validateTrigger:'submit'
  107. },
  108. entCatId:{
  109. rules:[
  110. {
  111. required: true,
  112. errorMessage:"请选择企业分类"
  113. }
  114. ],
  115. validateTrigger:'submit'
  116. }
  117. },
  118. standardLevelOptions:[
  119. { value: 0, text: '末达标' },
  120. { value: 1, text: '一级' },
  121. { value: 2, text: '二级' },
  122. { value: 3, text: '三级' }
  123. ],
  124. ifSafetyDepartments:[
  125. {value:1,text:'有'},
  126. {value:0,text:'无'},
  127. ],
  128. isMajors:[
  129. {value:1,text:'是'},
  130. {value:0,text:'否'},
  131. ],
  132. form:{
  133. entId: 0,
  134. entCatId: 1,
  135. entName: '',
  136. entUscc: '',
  137. entLegalRepresentative: '',
  138. entBusinessScope: '',
  139. entAddress: '',
  140. charger: '',
  141. chargerPhone: '',
  142. safetyManager: '',
  143. safetyManagerPhone: '',
  144. ifSafetyDepartment: 0,
  145. staffNum: 0,
  146. staffSpecialNum: 0,
  147. staffSafetyNum: 0,
  148. staffCertifiedEngineerNum: 0,
  149. safetyStandardLevel: 0,
  150. safetyCertNo: '',
  151. remark: '',
  152. isMajor: 0
  153. }
  154. }
  155. },
  156. methods:{
  157. resetForm(){
  158. this.form={
  159. entId: 0,
  160. entCatId: 1,
  161. entName: '',
  162. entUscc: '',
  163. entLegalRepresentative: '',
  164. entBusinessScope: '',
  165. entAddress: '',
  166. charger: '',
  167. chargerPhone: '',
  168. safetyManager: '',
  169. safetyManagerPhone: '',
  170. ifSafetyDepartment: 0,
  171. staffNum: 0,
  172. staffSpecialNum: 0,
  173. staffSafetyNum: 0,
  174. staffCertifiedEngineerNum: 0,
  175. safetyStandardLevel: 0,
  176. safetyCertNo: '',
  177. remark: '',
  178. isMajor: 0
  179. }
  180. },
  181. onSubmit(){
  182. this.$refs.form.validate().then(res=>{
  183. let submitFx=this.type==='add'?industryApi.create:industryApi.update
  184. submitFx(this.form).then(()=>{
  185. uni.showToast({
  186. icon:"none",
  187. title:"成功!!"
  188. })
  189. this.$emit('success')
  190. this.close();
  191. })
  192. }).catch(err =>{
  193. console.log(err)
  194. uni.showToast({
  195. icon:"none",
  196. title:"请检查填写信息!"
  197. })
  198. })
  199. },
  200. show({type,item}){
  201. this.resetForm()
  202. this.form={...this.form,...item}
  203. this.type=type
  204. this.$refs.drawer.open()
  205. },
  206. close(){
  207. this.$refs.drawer.close()
  208. }
  209. }
  210. }
  211. </script>
  212. <style lang="scss" scoped>
  213. .scroll-view {
  214. height: 100%;
  215. padding: 20rpx;
  216. box-sizing: border-box;
  217. .form-wrap{
  218. padding:40rpx 20rpx;
  219. .handle-container{
  220. display: flex;
  221. justify-content: center;
  222. align-items: center;
  223. button{
  224. width: 160rpx;
  225. padding: 20rpx 16rpx;
  226. line-height: 1;
  227. font-size: 28rpx;
  228. &.save{
  229. background-color: #007aff;
  230. }
  231. }
  232. }
  233. .word-limit{
  234. text-align: right;
  235. padding: 10rpx 0;
  236. color: #999;
  237. font-size: 26rpx;
  238. }
  239. }
  240. }
  241. </style>