setting.vue 6.7 KB

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