123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 |
- <template>
- <el-dialog
- v-loading="loading"
- :title="'添加商品上线'"
- :center="true"
- align="left"
- top="8vh"
- width="1040px"
- :close-on-click-modal="false"
- :visible.sync="showModelThis"
- element-loading-text="拼命加载中"
- element-loading-spinner="el-icon-loading"
- element-loading-background="rgba(0, 0, 0, 0.8)"
- @close="showModelThis = false"
- >
- <el-card style="margin: -20px 0 0 0; padding-bottom: 0">
- <el-row :gutter="10">
- <el-col :span="24" style="padding: 0 0 15px 0">
- <el-table
- :data="sitem"
- stripe
- :size="'mini'"
- border
- max-height="380px"
- style="width: 100%"
- >
- <el-table-column
- prop="spuCode"
- label="编号"
- width="160"
- show-overflow-tooltip
- />
- <el-table-column
- prop="good_img"
- label="图片"
- width="45"
- show-overflow-tooltip
- >
- <template slot-scope="scope">
- <div
- v-if="scope.row.good_img"
- style="width: 20px; height: 20px"
- class="hover"
- v-viewer
- >
- <img
- :src="scope.row.good_img"
- style="display: inline-block; width: 100%; height: 100%"
- alt=""
- />
- </div>
- </template>
- </el-table-column>
- <el-table-column
- prop="good_name"
- label="名称"
- min-width="160px"
- show-overflow-tooltip
- />
- <el-table-column
- prop="cat_name"
- label="分类"
- min-width="100"
- show-overflow-tooltip
- />
- <el-table-column
- prop="brand_name"
- label="品牌"
- show-overflow-tooltip
- />
- <el-table-column
- prop="good_type"
- label="定制"
- width="50"
- show-overflow-tooltip
- >
- <template slot-scope="scope">
- <el-tag
- :size="'mini'"
- :type="scope.row.good_type == '1' ? '' : 'warning'"
- v-text="
- (options1.find((item) => item.id == scope.row.status) || {})
- .name || '--'
- "
- ></el-tag>
- </template>
- </el-table-column>
- <el-table-column
- prop="supplierNo"
- label="供应商编号"
- width="110"
- show-overflow-tooltip
- />
- <el-table-column
- prop="supplier_name"
- label="供应商名称"
- width="110"
- show-overflow-tooltip
- />
- <el-table-column
- prop="companyNo"
- label="业务公司编号"
- width="110"
- show-overflow-tooltip
- />
- <el-table-column
- prop="company"
- label="业务公司名称"
- width="110"
- show-overflow-tooltip
- />
- </el-table>
- </el-col>
- <el-col :span="24">
- <el-form
- ref="ruleForm"
- :model="ruleForm"
- status-icon
- :rules="rulesThis"
- label-width="80px"
- class="demo-ruleForm"
- >
- <el-row style="padding-bottom">
- <el-col :span="8">
- <el-form-item label="所属平台" prop="platform">
- <search-terrace
- :value="ruleForm.platform"
- :disabled="false"
- :isDetail="false"
- :is_show="'1'"
- :placeholder="'所属平台'"
- @searchChange="platform_codesearchChange"
- />
- </el-form-item>
- <el-form-item label="上线原因" prop="online_reason">
- <el-input
- :disabled="false"
- placeholder="上线原因"
- v-model="ruleForm.online_reason"
- maxlength="200"
- />
- </el-form-item>
- </el-col>
- <el-col :span="16" style="text-align: right">
- <el-form-item label="上线备注" prop="online_remark">
- <el-input
- type="textarea"
- :rows="3"
- :disabled="false"
- placeholder="商品备注"
- maxlength="2000"
- show-word-limit
- v-model="ruleForm.online_remark"
- />
- </el-form-item>
- <el-button
- v-if="id !== '007'"
- type="primary"
- :size="'mini'"
- @click="submitForm"
- >保 存
- </el-button>
- <el-button :size="'mini'" @click="showModelThis = false">{{
- id == "007" ? "关 闭" : "取 消"
- }}</el-button>
- </el-col>
- </el-row>
- </el-form>
- </el-col>
- </el-row>
- </el-card>
- </el-dialog>
- </template>
- <script>
- import asyncRequest from "@/apis/service/goodStore/dealGoodsPool";
- import resToken from "@/mixins/resToken";
- export default {
- name: "brand",
- props: ["showModel", "id", "sitem"],
- mixins: [resToken],
- data() {
- return {
- loading: false,
- showModelThis: this.showModel,
- ruleForm: {
- platform: "", //string 平台id
- online_reason: "", //string 上线原因
- online_remark: "", //string 上线备注
- },
- //是否定制
- options1: [
- { id: "0", name: "否" },
- { id: "1", name: "是" },
- ],
- rulesThis: this.rules,
- rules: {
- platform: [
- {
- required: true,
- message: "请选择所属平台",
- trigger: "change",
- },
- ],
- online_reason: [
- {
- required: true,
- message: "上线原因不能为空",
- trigger: "blur",
- },
- ],
- online_remark: [
- {
- required: true,
- message: "上线备注不能为空",
- trigger: "blur",
- },
- ],
- },
- };
- },
- watch: {
- showModel: function (val) {
- this.showModelThis = val;
- if (val) {
- this.initForm();
- }
- },
- showModelThis(val) {
- if (!val) {
- this.$emit("cancel");
- }
- },
- },
- methods: {
- async initForm() {
- this.loading = true;
- this.rulesThis = this.rules;
- await this.resetForm();
- this.loading = false;
- },
- async resetForm() {
- // 重置
- await this.$nextTick(() => {
- if (this.$refs.ruleForm) {
- this.$refs.ruleForm.resetFields();
- this.$refs.ruleForm.clearValidate();
- this.ruleForm = {
- platform: "", //string 平台id
- online_reason: "", //string 上线原因
- online_remark: "", //string 上线备注
- };
- }
- });
- },
- platform_codesearchChange(e) {
- const { id, code, label } = e;
- this.ruleForm.platform = id || "";
- this.$refs.ruleForm.validateField("platform");
- },
- async submitForm() {
- await this.$refs.ruleForm.validate(async (valid) => {
- if (valid) {
- if (!this.loading) {
- this.loading = true;
- let model = JSON.parse(JSON.stringify(this.ruleForm));
- // model.platform = model.platform.toString();
- model.codes = [];
- let list = JSON.parse(JSON.stringify(this.sitem));
- list.forEach((e) => {
- model.codes.push(e.spuCode);
- });
- let { code, data, message } = await asyncRequest.online_add(model);
- this.loading = false;
- if (code === 0) {
- this.$notify.success({
- title: "已成功添加至上线流程!",
- message: "",
- });
- this.showModelThis = false;
- // 刷新
- this.$emit("refresh");
- } else if (code >= 100 && code <= 104) {
- await this.logout();
- } else if (code === 1009) {
- let resList = JSON.parse(JSON.stringify(data));
- let htmlList = "<ul>";
- resList.forEach((v) => {
- htmlList += `<li>
- <img src='${v.good_img}' style='width: 20px; height: 20px'
- class='hover'
- v-viewer/>
- <span>${v.good_name}__</span>`;
- const { speclist } = v;
- let str = "<span>";
- speclist.forEach((a, ai) => {
- str += `${ai !== 0 ? "--" : ""}${a.spec_name}[${
- a.spec_value
- }]`;
- });
- htmlList += str + "</span>" + `</li>`;
- });
- htmlList += "</ul>";
- this.$notify({
- title: "以下商品已上线或已经在审批流程中!",
- dangerouslyUseHTMLString: true,
- message: htmlList,
- });
- } else {
- this.$message.warning(message);
- }
- }
- } else {
- console.log("error submit!!");
- return false;
- }
- });
- },
- },
- };
- </script>
- <style lang="scss" scoped>
- .brand {
- }
- </style>
|