edit.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <template>
  2. <div>
  3. <el-button size="mini" :type="btnType?btnType:'text'" @click="editBtn">编 辑</el-button>
  4. <el-drawer
  5. title="编辑项目"
  6. :visible.sync="dialogFormVisible"
  7. size="800px"
  8. direction="rtl"
  9. append-to-body
  10. @close="onClose">
  11. <div class="drawer__panel">
  12. <el-row :gutter="20">
  13. <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="right" size="mini">
  14. <el-col :span="12">
  15. <el-form-item label="项目名称:" prop="projectname">
  16. <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <!-- <el-col :span="12">
  20. <el-form-item label="项目编号" prop="projectnum">
  21. <el-input v-model="form.projectnum" placeholder="请输入项目编号"></el-input>
  22. </el-form-item>
  23. </el-col>
  24. <el-col :span="12">
  25. <el-form-item label="当前项目模板" prop="sa_projstagetempid">
  26. <el-select v-model="form.sa_projstagetempid" placeholder="请选择当前项目模板" size="mini">
  27. <el-option
  28. v-for="item in projectPanl()"
  29. :key="item.sa_projstagetempid"
  30. :label="item.stagetempname"
  31. :value="item.sa_projstagetempid">
  32. </el-option>
  33. </el-select>
  34. </el-form-item>
  35. </el-col>-->
  36. <el-col :span="12">
  37. <el-form-item label="项目类型:" prop="projecttype">
  38. <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="mini">
  39. <el-option
  40. v-for="(item,index) in projectType()"
  41. :key="index"
  42. :label="item.value"
  43. :value="item.value">
  44. </el-option>
  45. </el-select>
  46. </el-form-item>
  47. </el-col>
  48. <el-col :span="12">
  49. <el-form-item label="项目预算(元):" prop="budgetary">
  50. <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
  51. </el-form-item>
  52. </el-col>
  53. <el-col :span="12">
  54. <el-form-item label="项目规模:" prop="scale">
  55. <el-input v-model="form.scale" placeholder="请输入项目规模"></el-input>
  56. </el-form-item>
  57. </el-col>
  58. <el-col :span="12">
  59. <el-form-item label="预计签约金额(元):" prop="signamount_due">
  60. <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额"></el-input>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="12">
  64. <el-form-item label="项目等级:" prop="grade">
  65. <el-select v-model="form.grade" placeholder="请选择项目等级" size="mini">
  66. <el-option
  67. v-for="item in projectLead()"
  68. :key="item.rowindex"
  69. :label="item.value"
  70. :value="item.rowindex">
  71. </el-option>
  72. </el-select>
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="12">
  76. <el-form-item label="项目地址:" prop="province">
  77. <el-cascader
  78. style="width:100%"
  79. v-model="form.province"
  80. :options="basicData.data().areaData"
  81. @change="cascaderChange" clearable>
  82. </el-cascader>
  83. </el-form-item>
  84. </el-col>
  85. <el-col :span="12">
  86. <el-form-item label="详细地址:" prop="address">
  87. <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
  88. </el-form-item>
  89. </el-col>
  90. <el-col :span="24">
  91. <el-form-item label="预计签约月份:" prop="signdate_due">
  92. <el-date-picker
  93. v-model="form.signdate_due"
  94. type="date"
  95. placeholder="选择月份"
  96. @change="timeChange">
  97. </el-date-picker>
  98. </el-form-item>
  99. </el-col>
  100. </el-form>
  101. </el-row>
  102. </div>
  103. <div class="fixed__btn__panel">
  104. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  105. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
  106. </div>
  107. </el-drawer>
  108. </div>
  109. </template>
  110. <script>
  111. export default {
  112. name: "add",
  113. inject:['enterpriseList','projectType','projectLead','projectPanl'],
  114. components:{},
  115. props:['data','btnType'],
  116. data(){
  117. return {
  118. dialogFormVisible:false,
  119. projectAddress:[],
  120. addChange:false,
  121. form:{
  122. "sa_projectid":0,
  123. "projectname":"",
  124. "projectnum":"",
  125. "address":"",//可选
  126. "grade":"",//可选
  127. "budgetary":"",//可选
  128. "remarks":"",//可选
  129. "projecttype":"",//可选
  130. "sa_projstagetempid":"",//可选
  131. "signdate_due":"",//可选
  132. "scale":"",//可选
  133. "signamount_due":"",//可选
  134. "province":"",
  135. "city":"",
  136. "county":"",
  137. },
  138. rules:{
  139. projectname:[
  140. { required: true, message: '输入项目名称', trigger: 'blur'},
  141. ],
  142. projectnum:[
  143. { required: true, message: '输入项目编号', trigger: 'blur'}
  144. ],
  145. projecttype:[
  146. { required: true, message: '请选择项目类型', trigger: 'blur'}
  147. ],
  148. sys_enterpriseid:[
  149. { required: true, message: '请选择企业', trigger: 'blur'},
  150. ],
  151. sa_projstagetempid:[
  152. { required: true, message: '请选择当前项目模板', trigger: 'blur'}
  153. ],
  154. province:[
  155. { required: true, message: '请选择项目地址', trigger: 'blur'}
  156. ]
  157. }
  158. }
  159. },
  160. methods:{
  161. /*省市县*/
  162. cascaderChange (val) {
  163. this.form = Object.assign({},this.form,{city:val[1],county:val[2]})
  164. },
  165. editBtn () {
  166. this.dialogFormVisible = true
  167. this.form = Object.assign({},this.form,this.data)
  168. this.form.province = [this.form.province,this.form.city,this.form.county]
  169. this.form.grade = parseInt(this.form.grade)
  170. },
  171. onSubmit(){
  172. this.$refs['form'].validate(async (valid) => {
  173. if (!valid) return false
  174. this.form.province = this.form.province[0]
  175. const res = await this.$api.requested({
  176. "id": "20221020144202",
  177. "version":1,
  178. "content": this.form
  179. })
  180. this.tool.showMessage(res,()=>{
  181. this.$emit('onSuccess')
  182. this.$refs['form'].resetFields();
  183. this.dialogFormVisible = false
  184. this.addChange = false
  185. })
  186. })
  187. },
  188. timeChange(e) {
  189. if(!e) {
  190. this.form.signdate_due = ''
  191. }
  192. let result = this.changeTimeFormat(e.getTime())
  193. this.form.signdate_due = result
  194. },
  195. changeTimeFormat(time) {
  196. var date = new Date(time);
  197. var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
  198. var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
  199. return date.getFullYear() + "-" + month + "-" + currentDate
  200. },
  201. onClose(){
  202. this.dialogFormVisible = false
  203. }
  204. }
  205. }
  206. </script>
  207. <style scoped>
  208. /deep/.el-select {
  209. height: 28px !important;
  210. width: 100%;
  211. }
  212. /deep/.el-input__inner {
  213. height: 28px !important;
  214. }
  215. </style>