AddVersion.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <div>
  3. <crumbs :title="title" :param="$route.params" linkTo="VersionInfo"></crumbs>
  4. <div class="contents">
  5. <div class="content">
  6. <!-- <el-form ref="form" :label-position="labelPosition" label-width="95px" class="add-admin-form" :model="form" :rules="rules"> -->
  7. <el-form ref="form" :label-position="labelPosition" label-width="95px" class="add-version-form" :model="form" :rules="rules">
  8. <el-form-item label="版本号:" prop="name" class="version-num">
  9. <el-input v-model="form.name" placeholder="请输入版本号" maxlength="21"></el-input>
  10. </el-form-item>
  11. <el-form-item label="版本时间:" prop="refreshTime">
  12. <el-date-picker
  13. v-model="form.refreshTime"
  14. type="date"
  15. placeholder="选择日期"
  16. value-format="yyyy-MM-dd"
  17. :clearable='false'>
  18. </el-date-picker>
  19. </el-form-item>
  20. <el-form-item label="版本备注:" prop="remark" class="discDesc">
  21. <el-input type="textarea" :rows="3" placeholder="请输入版本备注" v-model="form.remark" maxlength="121"></el-input>
  22. </el-form-item>
  23. <el-form-item label="版本说明:" v-if="list&&list.length>0">
  24. </el-form-item>
  25. <VersionDesc :detail="list" :versionId="id" :isFirst="isFirst" :isCopy="copy" @func="getDetailList"/>
  26. <el-button class="disclButn" size="small" type="primary" :disabled = 'saveDisable' @click="comfirn('form')">确定</el-button>
  27. </el-form>
  28. <!-- <VersionDesc :detail="list" :versionId="id" :isFirst="isFirst" :isCopy="copy" @func="getDetailList"/>
  29. <el-button class="disclButn" size="small" type="primary" @click="comfirn">确定</el-button> -->
  30. </div>
  31. </div>
  32. </div>
  33. </template>
  34. <script type="text/javascript">
  35. import api from '@api/icss.js';
  36. import VersionDesc from './VersionDesc.vue';
  37. export default {
  38. name:'AddVersion',
  39. data(){
  40. const titleVaild = (rule, value, callback) => {
  41. if (!value) {
  42. return callback(new Error('请输入版本号'));
  43. }
  44. if (value.length > 20) {
  45. this.form.name = value.substr(0, 20);
  46. this.$message({
  47. showClose: true,
  48. type: 'warning',
  49. message: '版本号已超过最大限制20字'
  50. })
  51. }
  52. callback();
  53. };
  54. const remarkVaild = (rule, value, callback) => {
  55. if (value.length > 120) {
  56. this.form.remark = value.substr(0, 120);
  57. this.$message({
  58. showClose: true,
  59. type: 'warning',
  60. message: '版本备注已超过最大限制120字'
  61. })
  62. }
  63. callback();
  64. };
  65. return{
  66. // data:{},
  67. list:[],
  68. labelPosition:'left',
  69. isFirst:true,
  70. title:'版本信息维护-添加版本信息',
  71. form:{
  72. name:'',
  73. refreshTime:'',
  74. remark:''
  75. },
  76. id:null,
  77. rules:{
  78. name:[{ required: true, validator: titleVaild, trigger: [ 'change'] },
  79. { required: true, message: '请输入版本号',trigger: ['blur', 'change'] }],
  80. remark:{ required: false, validator: remarkVaild, trigger: [ 'change'] },
  81. refreshTime:{ required: true, message: '请选择时间', trigger: ['blur', 'change'] }
  82. },
  83. pickerOptions1:{
  84. disabledDate(time) {
  85. return time.getTime() < Date.now();
  86. },
  87. },
  88. copy:null,
  89. saveDisable: false //保存按钮禁止点击
  90. }
  91. },
  92. created(){
  93. let info = this.$route.params.info;
  94. this.copy = this.$route.params.copy;
  95. if(info){
  96. this.id = info.id;
  97. this.form.name = info.name;
  98. this.form.refreshTime = info.refreshTime;
  99. this.form.remark = info.remark;
  100. this.title = this.copy?"版本信息维护-复制版本信息":"版本信息维护-修改版本信息";
  101. // this.getList();
  102. this.list = info.detail;
  103. }
  104. },
  105. methods:{
  106. /*getList(){
  107. api.getVersionDetlInfo({id:this.id}).then((res)=>{
  108. const result = res.data;
  109. if(result.code==0){
  110. this.list = result.data;
  111. }else{
  112. this.$message({
  113. message:result.msg,
  114. type:'warning'
  115. });
  116. }
  117. })
  118. },*/
  119. getDetailList(data){//子组件数据
  120. this.list = data;
  121. },
  122. comfirn(form){
  123. /*if(!this.form.name.trim() || !this.form.refreshTime.trim()){
  124. this.$message({
  125. message:'请填写相关内容',
  126. type:'warning'
  127. });
  128. return
  129. }*/
  130. this.$refs[form].validate((valid) => {
  131. if (valid) {
  132. if(this.id && !this.copy){//修改
  133. const param = Object.assign({},this.form,{id:this.id})
  134. this.saveDisable = true //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
  135. api.updateVersInfo(param).then((res)=>{
  136. if(res.data.code==0){
  137. this.$message({
  138. message:"修改成功",
  139. type:'success'
  140. });
  141. //返回带搜索条件的首页
  142. this.$router.push({
  143. name: 'VersionInfo',
  144. params: Object.assign({}, this.$route.params, {currentPage: 1})
  145. });
  146. }else{
  147. this.$message({
  148. message:res.data.msg,
  149. type:'warning'
  150. });
  151. }
  152. this.saveDisable = false
  153. })
  154. }else{//添加
  155. // 复制时把list多余字段过滤掉,如id等
  156. const detail = this.list;
  157. let copyDetail=[];
  158. let item={};
  159. if(detail && detail.length>0){
  160. for(let i=0; i<detail.length; i++){
  161. item.title = detail[i].title;
  162. item.description = detail[i].description;
  163. copyDetail.push(item);
  164. item={};
  165. }
  166. }
  167. const params = Object.assign({},this.form,{'versionDetail':copyDetail});
  168. // api.addVersInfo(this.form).then((res)=>{
  169. this.saveDisable = true //提交保存按钮不可点击,返回结果时才可点击,防止频繁发送请求
  170. api.addVersInfo(params).then((res)=>{
  171. if(res.data.code==0){
  172. this.$message({
  173. message:"添加成功",
  174. type:'success'
  175. })
  176. this.$router.push({path: 'LT-YXSJWH-BBXXWH'});
  177. }else{
  178. this.$message({
  179. message:res.data.msg,
  180. type:'warning'
  181. });
  182. }
  183. this.saveDisable = false
  184. })
  185. }
  186. } else {
  187. return false;
  188. }
  189. });
  190. },
  191. },
  192. components:{
  193. VersionDesc
  194. }
  195. }
  196. </script>
  197. <style lang="less">
  198. @import "../../less/admin.less";
  199. .content{
  200. background: #fff;
  201. // padding: 20px 20px 30px;
  202. padding: 20px 20px 50px;
  203. color: #545455;
  204. min-width: 980px;
  205. position: relative;
  206. .discDesc{
  207. margin-bottom: 20px;
  208. }
  209. .disclButn{
  210. position: absolute;
  211. right: 80px;
  212. bottom: 10px;
  213. }
  214. }
  215. .add-version-form{
  216. .version-num{
  217. width: 500px;
  218. }
  219. }
  220. </style>