ソースを参照

Merge branch 'green' into allTestUrgent

NULL1222 4 日 前
コミット
7c9bb820fd

+ 0 - 10
src/Form/serviceWorkItem/add.vue

@@ -204,16 +204,6 @@ export default {
         this.$emit("onSuccess");
         this.$refs["form"].resetFields();
         this.dialogFormVisible = false;
-        setTimeout(() => {
-          this.$router.push({
-            path: "/serviceWorkItemDetail",
-            query: {
-              id: res.data.sc_workpresetid,
-              rowindex: res.data.rowindex,
-            },
-          });
-          this.$store.dispatch("changeDetailDrawer", true);
-        }, 500);
       });
     },
     onCancel() {

+ 1 - 0
src/bgj/headquartersServiceMaterial/modules/detail.vue

@@ -84,6 +84,7 @@
                 ></counterExamine>
                 <!-- 新建状态下可删除 -->
                 <el-button
+                    style="margin-right: 10px;"
                     type="danger"
                     @click="onDelete"
                     size="mini"

+ 80 - 39
src/bgj/serviceAppointment/modules/changeBill.vue

@@ -64,36 +64,13 @@
                         </el-col>
                         <el-col :span="24">
                             <el-form-item
-                                :label="$t('负责人')"
-                                prop="leader_userid"
-                            >
-                                <el-select
-                                    class="inline-24"
-                                    v-model="form.leader_userid"
-                                    :placeholder="$t(`请选择负责人`)"
-                                    size="small"
-                                    clearable
-                                >
-                                    <el-option
-                                        v-for="(item, index) in leaderList"
-                                        :key="index"
-                                        :label="`${$t(item.name)} ${$t(
-                                            item.position
-                                        )}`"
-                                        :value="item.userid"
-                                    ></el-option>
-                                </el-select>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="24">
-                            <el-form-item
-                                :label="$t('参与人')"
+                                :label="$t('团队成员')"
                                 prop="part_userids"
                             >
                                 <el-select
                                     class="inline-24"
                                     v-model="form.part_userids"
-                                    :placeholder="$t(`请选择参与人`)"
+                                    :placeholder="$t(`请选择团队成员`)"
                                     size="small"
                                     clearable
                                     multiple
@@ -137,6 +114,38 @@
                 >
             </div>
         </el-drawer>
+        <el-dialog
+            :title="$t('选择负责人')"
+            :visible.sync="leaderDialogVisible"
+            width="400px"
+            append-to-body
+            :close-on-click-modal="false"
+        >
+            <el-form size="mini">
+                <el-form-item  required>
+                    <el-radio-group v-model="tempLeaderUserid">
+                        <el-radio
+                            v-for="(item, index) in teamMemberOptions"
+                            :key="index"
+                            :label="item.userid"
+                            >{{ $t(item.name) }} {{ $t(item.position) }}</el-radio
+                        >
+                    </el-radio-group>
+                </el-form-item>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="cancelLeaderDialog">{{
+                    $t("取 消")
+                }}</el-button>
+                <el-button
+                    size="small"
+                    type="primary"
+                    :disabled="!tempLeaderUserid"
+                    @click="confirmLeader"
+                    >{{ $t("确 定") }}</el-button
+                >
+            </span>
+        </el-dialog>
     </div>
 </template>
 
@@ -148,6 +157,8 @@ export default {
     data() {
         return {
             dialogFormVisible: false,
+            leaderDialogVisible: false,
+            tempLeaderUserid: "",
             serveModelList: [],
             serveClassList: [],
             leaderList: [],
@@ -174,16 +185,24 @@ export default {
                         trigger: "blur",
                     },
                 ],
-                leader_userid: [
+                part_userids: [
                     {
                         required: true,
-                        message: this.$t("请选择负责人"),
+                        message: this.$t("请选择团队成员"),
                         trigger: "blur",
                     },
                 ],
             },
         };
     },
+    computed: {
+        teamMemberOptions() {
+            if (!this.form.part_userids || !this.form.part_userids.length) return [];
+            return this.leaderList.filter((item) =>
+                this.form.part_userids.includes(item.userid)
+            );
+        },
+    },
     methods: {
         show() {
             this.form.remarks = this.data.remarks;
@@ -192,23 +211,44 @@ export default {
             this.getLeaderList();
         },
         onSubmit() {
-            this.$refs["form"].validate(async (valid) => {
+            this.$refs["form"].validate((valid) => {
                 if (!valid) return false;
-                this.form.sc_serviceformid = this.$route.query.id;
-                const res = await this.$api.requested({
-                    id: "2026052013202502",
-                    version: 1,
-                    content: this.form,
-                });
-                this.tool.showMessage(res, () => {
-                    this.$emit("onSuccess");
-                    this.$refs["form"].resetFields();
-                    this.dialogFormVisible = false;
-                });
+                this.tempLeaderUserid = "";
+                this.leaderDialogVisible = true;
+            });
+        },
+        cancelLeaderDialog() {
+            this.leaderDialogVisible = false;
+            this.tempLeaderUserid = "";
+        },
+        async confirmLeader() {
+            if (!this.tempLeaderUserid) return;
+            this.leaderDialogVisible = false;
+            this.form.leader_userid = this.tempLeaderUserid;
+            // 过滤掉part_userids中被选为负责人的id
+            const submitData = {
+                ...this.form,
+                part_userids: this.form.part_userids.filter(
+                    (id) => id !== this.tempLeaderUserid
+                ),
+            };
+            submitData.sc_serviceformid = this.data.sc_serviceformid;
+            const res = await this.$api.requested({
+                id: "2026052013202502",
+                version: 1,
+                content: submitData,
+            });
+            this.tool.showMessage(res, () => {
+                this.$emit("onSuccess");
+                this.$refs["form"].resetFields();
+                this.dialogFormVisible = false;
+                this.tempLeaderUserid = "";
             });
         },
          onCancel() {
             this.dialogFormVisible = false;
+            this.leaderDialogVisible = false;
+            this.tempLeaderUserid = "";
             this.$refs["form"].resetFields();
         },
         modelChange(data) {
@@ -222,6 +262,7 @@ export default {
                 content: {
                     pageNumber: 1,
                     pageSize: 100,
+                    isused:1,
                     where: {
                         condition: "",
                     },

+ 44 - 0
src/bgj/serviceWorkItem/modules/detail.vue

@@ -24,6 +24,13 @@
                     :data="mainData"
                     @onSuccess="queryMainData"
                 ></Edit>
+                <el-button
+                    type="danger"
+                    @click="onDelete"
+                    size="mini"
+                    :loading="deleteLoading"
+                    >{{ $t(`删 除`) }}</el-button
+                >
             </template>
             <div slot="slot0"></div>
             <div slot="slot1"></div>
@@ -39,6 +46,7 @@ export default {
         return {
             mainData: {},
             mainAreaData: {},
+            deleteLoading: false,
         };
     },
     components: { Edit },
@@ -258,6 +266,42 @@ export default {
             this.queryMainData(this.$route.query.id);
             this.$emit("onSuccess");
         },
+         onDelete() {
+            this.$confirm(
+                this.$t("是否确认删除此服务工作项") + "?",
+                this.$t("提示"),
+                {
+                    confirmButtonText: this.$t("确定"),
+                    cancelButtonText: this.$t("取消"),
+                    type: "warning",
+                }
+            )
+                .then(async () => {
+                    this.deleteLoading = true;
+                    const res = await this.$api.requested({
+                        id: "2026051416503602",
+                        content: {
+                            sc_workpresetids: [this.$route.query.id],
+                        },
+                    });
+                    this.deleteLoading = false;
+                    if (res.code === 0) {
+                        this.$message.error(res.data[0].errmsg);
+                    } else {
+                        this.$message({
+                            message: this.$t("删除成功"),
+                            type: "success",
+                        });
+                        this.$store.dispatch("changeDetailDrawer", false);
+                    }
+                })
+                .catch(() => {
+                    this.$message({
+                        type: "info",
+                        message: this.$t("已取消删除"),
+                    });
+                });
+        },
     },
     mounted() {
         this.queryMainData(this.$route.query.id);