setting.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <drawer-tabs-container>
  3. <div class="project-setting">
  4. <Form ref="formSystem" :model="formSystem" :label-width="110" @submit.native.prevent>
  5. <div class="project-setting-title">{{$L('项目信息')}}:</div>
  6. <FormItem :label="$L('项目简介')">
  7. <Input v-model="formSystem.project_desc" type="textarea" :autosize="{minRows:3,maxRows:20}" style="max-width:450px"/>
  8. </FormItem>
  9. <div class="project-setting-title">{{$L('项目权限')}}:</div>
  10. <FormItem prop="project_role_export">
  11. <div slot="label">
  12. <Tooltip :content="$L('任务列表导出Excel')" transfer>{{$L('导出列表')}}</Tooltip>
  13. </div>
  14. <Checkbox :value="true" disabled>{{$L('项目负责人')}}</Checkbox>
  15. <CheckboxGroup v-model="formSystem.project_role_export" class="project-setting-group">
  16. <Checkbox label="member">{{$L('项目成员')}}</Checkbox>
  17. </CheckboxGroup>
  18. </FormItem>
  19. <div class="project-setting-title">{{$L('任务权限')}}:</div>
  20. <FormItem :label="$L('添加任务')">
  21. <Checkbox :value="true" disabled>{{$L('项目负责人')}}</Checkbox>
  22. <CheckboxGroup v-model="formSystem.add_role" class="project-setting-group">
  23. <Checkbox label="member">{{$L('项目成员')}}</Checkbox>
  24. </CheckboxGroup>
  25. </FormItem>
  26. <FormItem :label="$L('修改任务')">
  27. <Checkbox :value="true" disabled>{{$L('项目负责人')}}</Checkbox>
  28. <CheckboxGroup v-model="formSystem.edit_role" class="project-setting-group">
  29. <Checkbox label="owner">{{$L('任务负责人')}}</Checkbox>
  30. <Checkbox label="member">{{$L('项目成员')}}</Checkbox>
  31. </CheckboxGroup>
  32. </FormItem>
  33. <FormItem :label="$L('标记完成')">
  34. <Checkbox :value="true" disabled>{{$L('项目负责人')}}</Checkbox>
  35. <CheckboxGroup v-model="formSystem.complete_role" class="project-setting-group">
  36. <Checkbox label="owner">{{$L('任务负责人')}}</Checkbox>
  37. <Checkbox label="member">{{$L('项目成员')}}</Checkbox>
  38. </CheckboxGroup>
  39. </FormItem>
  40. <FormItem :label="$L('归档任务')">
  41. <Checkbox :value="true" disabled>{{$L('项目负责人')}}</Checkbox>
  42. <CheckboxGroup v-model="formSystem.archived_role" class="project-setting-group">
  43. <Checkbox label="owner">{{$L('任务负责人')}}</Checkbox>
  44. <Checkbox label="member">{{$L('项目成员')}}</Checkbox>
  45. </CheckboxGroup>
  46. </FormItem>
  47. <FormItem :label="$L('删除任务')">
  48. <Checkbox :value="true" disabled>{{$L('项目负责人')}}</Checkbox>
  49. <CheckboxGroup v-model="formSystem.del_role" class="project-setting-group">
  50. <Checkbox label="owner">{{$L('任务负责人')}}</Checkbox>
  51. <Checkbox label="member">{{$L('项目成员')}}</Checkbox>
  52. </CheckboxGroup>
  53. </FormItem>
  54. <div class="project-setting-title">{{$L('面板显示')}}:</div>
  55. <FormItem :label="$L('显示已完成')">
  56. <div>
  57. <RadioGroup v-model="formSystem.complete_show">
  58. <Radio label="show">{{$L('显示')}}</Radio>
  59. <Radio label="hide">{{$L('隐藏')}}</Radio>
  60. </RadioGroup>
  61. </div>
  62. <div v-if="formSystem.complete_show=='show'" class="form-placeholder">
  63. {{$L('项目面板显示已完成的任务。')}}
  64. </div>
  65. <div v-else class="form-placeholder">
  66. {{$L('项目面板隐藏已完成的任务。')}}
  67. </div>
  68. </FormItem>
  69. <FormItem>
  70. <Button :loading="loadIng > 0" type="primary" @click="handleSubmit('formSystem')">{{$L('提交')}}</Button>
  71. <Button :loading="loadIng > 0" @click="handleReset('formSystem')" style="margin-left: 8px">{{$L('重置')}}</Button>
  72. </FormItem>
  73. </Form>
  74. </div>
  75. </drawer-tabs-container>
  76. </template>
  77. <style lang="scss" scoped>
  78. .project-setting {
  79. padding: 0 12px;
  80. .project-setting-title {
  81. padding: 12px;
  82. font-size: 14px;
  83. font-weight: 600;
  84. }
  85. .project-setting-group {
  86. display: inline-block;
  87. }
  88. .form-placeholder {
  89. font-size: 12px;
  90. color: #999999;
  91. }
  92. .form-placeholder:hover {
  93. color: #000000;
  94. }
  95. }
  96. </style>
  97. <script>
  98. import DrawerTabsContainer from "../DrawerTabsContainer";
  99. export default {
  100. name: 'ProjectSetting',
  101. components: {DrawerTabsContainer},
  102. props: {
  103. projectid: {
  104. default: 0
  105. },
  106. canload: {
  107. type: Boolean,
  108. default: true
  109. },
  110. },
  111. data () {
  112. return {
  113. loadYet: false,
  114. loadIng: 0,
  115. formSystem: {},
  116. }
  117. },
  118. mounted() {
  119. if (this.canload) {
  120. this.loadYet = true;
  121. this.getSetting();
  122. }
  123. },
  124. watch: {
  125. projectid() {
  126. if (this.loadYet) {
  127. this.getSetting();
  128. }
  129. },
  130. canload(val) {
  131. if (val && !this.loadYet) {
  132. this.loadYet = true;
  133. this.getSetting();
  134. }
  135. }
  136. },
  137. methods: {
  138. getSetting(save) {
  139. this.loadIng++;
  140. $A.apiAjax({
  141. url: 'project/setting?act=' + (save ? 'save' : 'get'),
  142. data: Object.assign(this.formSystem, {
  143. projectid: this.projectid
  144. }),
  145. complete: () => {
  146. this.loadIng--;
  147. },
  148. success: (res) => {
  149. if (res.ret === 1) {
  150. this.formSystem = res.data;
  151. this.formSystem__reset = $A.cloneData(this.formSystem);
  152. if (save) {
  153. this.$Message.success(this.$L('修改成功'));
  154. this.$emit('on-change', res.data);
  155. }
  156. } else {
  157. if (save) {
  158. this.$Modal.error({title: this.$L('温馨提示'), content: res.msg });
  159. }
  160. }
  161. }
  162. });
  163. },
  164. handleSubmit(name) {
  165. this.$refs[name].validate((valid) => {
  166. if (valid) {
  167. switch (name) {
  168. case "formSystem": {
  169. this.getSetting(true);
  170. break;
  171. }
  172. }
  173. }
  174. })
  175. },
  176. handleReset(name) {
  177. if (typeof this[name + '__reset'] !== "undefined") {
  178. this[name] = $A.cloneData(this[name + '__reset']);
  179. return;
  180. }
  181. this.$refs[name].resetFields();
  182. },
  183. }
  184. }
  185. </script>