Create.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  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=this.cats
  86. if(!entCats)return []
  87. return entCats.map(item=>{
  88. return{
  89. value:item.entCatId,
  90. text:item.entCatTitle
  91. }
  92. })
  93. }
  94. },
  95. props:{
  96. cats:{
  97. type:Array,
  98. default:()=>[]
  99. }
  100. },
  101. data(){
  102. return{
  103. type:undefined,
  104. rules:{
  105. entName:{
  106. rules:[
  107. {
  108. required: true,
  109. errorMessage:"请输入企业名称"
  110. }
  111. ],
  112. validateTrigger:'submit'
  113. },
  114. entCatId:{
  115. rules:[
  116. {
  117. required: true,
  118. errorMessage:"请选择企业分类"
  119. }
  120. ],
  121. validateTrigger:'submit'
  122. }
  123. },
  124. standardLevelOptions:[
  125. { value: 0, text: '末达标' },
  126. { value: 1, text: '一级' },
  127. { value: 2, text: '二级' },
  128. { value: 3, text: '三级' }
  129. ],
  130. ifSafetyDepartments:[
  131. {value:1,text:'有'},
  132. {value:0,text:'无'},
  133. ],
  134. isMajors:[
  135. {value:1,text:'是'},
  136. {value:0,text:'否'},
  137. ],
  138. form:{
  139. entId: 0,
  140. entCatId: 1,
  141. entName: '',
  142. entUscc: '',
  143. entLegalRepresentative: '',
  144. entBusinessScope: '',
  145. entAddress: '',
  146. charger: '',
  147. chargerPhone: '',
  148. safetyManager: '',
  149. safetyManagerPhone: '',
  150. ifSafetyDepartment: 0,
  151. staffNum: 0,
  152. staffSpecialNum: 0,
  153. staffSafetyNum: 0,
  154. staffCertifiedEngineerNum: 0,
  155. safetyStandardLevel: 0,
  156. safetyCertNo: '',
  157. remark: '',
  158. isMajor: 0
  159. }
  160. }
  161. },
  162. methods:{
  163. resetForm(){
  164. this.form={
  165. entId: 0,
  166. entCatId: 1,
  167. entName: '',
  168. entUscc: '',
  169. entLegalRepresentative: '',
  170. entBusinessScope: '',
  171. entAddress: '',
  172. charger: '',
  173. chargerPhone: '',
  174. safetyManager: '',
  175. safetyManagerPhone: '',
  176. ifSafetyDepartment: 0,
  177. staffNum: 0,
  178. staffSpecialNum: 0,
  179. staffSafetyNum: 0,
  180. staffCertifiedEngineerNum: 0,
  181. safetyStandardLevel: 0,
  182. safetyCertNo: '',
  183. remark: '',
  184. isMajor: 0
  185. }
  186. },
  187. onSubmit(){
  188. this.$refs.form.validate().then(res=>{
  189. let submitFx=this.type==='add'?industryApi.create:industryApi.update
  190. submitFx(this.form).then(()=>{
  191. uni.showToast({
  192. icon:"none",
  193. title:"成功!!"
  194. })
  195. this.$emit('success')
  196. this.close();
  197. })
  198. }).catch(err =>{
  199. console.log(err)
  200. uni.showToast({
  201. icon:"none",
  202. title:"请检查填写信息!"
  203. })
  204. })
  205. },
  206. show({type,item}){
  207. this.resetForm()
  208. this.form={...this.form,...item}
  209. this.type=type
  210. this.$refs.drawer.open()
  211. },
  212. close(){
  213. this.$refs.drawer.close()
  214. }
  215. }
  216. }
  217. </script>
  218. <style lang="scss" scoped>
  219. .scroll-view {
  220. height: 100%;
  221. padding: 20rpx;
  222. box-sizing: border-box;
  223. .form-wrap{
  224. padding:40rpx 20rpx;
  225. .handle-container{
  226. display: flex;
  227. justify-content: center;
  228. align-items: center;
  229. button{
  230. width: 160rpx;
  231. padding: 20rpx 16rpx;
  232. line-height: 1;
  233. font-size: 28rpx;
  234. &.save{
  235. background-color: #007aff;
  236. }
  237. }
  238. }
  239. .word-limit{
  240. text-align: right;
  241. padding: 10rpx 0;
  242. color: #999;
  243. font-size: 26rpx;
  244. }
  245. }
  246. }
  247. </style>