Selaa lähdekoodia

crm创建订单

ct 4 päivää sitten
vanhempi
commit
a868c021ed

+ 1 - 1
src/views/crm/components/customerDetails.vue

@@ -200,7 +200,7 @@
             <duplicate-customer  ref="duplicateCustomer" />
         </el-drawer>
         <el-dialog title="创建订单" :visible.sync="addPackageOpen" width="1000px" append-to-body>
-          <addPackage  @closePackage="closePackage"   ref="addPackageVisit" />
+          <addPackage @closePackage="closePackage"   ref="addPackageVisit" :customerId="customerId" />
         </el-dialog>
     </div>
 </template>

+ 2 - 2
src/views/crm/components/customerStoreOrderList.vue

@@ -76,7 +76,7 @@
         size="75%"
         :title="show.title" :visible.sync="show.open"
         >
-        <product-order  ref="order" />
+        <productOrder  ref="order" />
         </el-drawer>
     </div>
 
@@ -84,7 +84,7 @@
   
 <script>
 import { getCustomerOrderList  } from "@/api/store/storeOrder";
-import productOrder from "../../store/components/productOrder";
+import productOrder from "../../store/components/productOrder2.vue";
     export default {
         components: { productOrder  },
         name: "customerVisit",

+ 2 - 0
src/views/store/components/addOrder.vue

@@ -410,6 +410,7 @@ export default {
       row.count=1;
       row.money=row.count*row.price;
       this.products.push(row);
+      this.$message.success("商品"+ row.productName + "添加成功")
       this.compute();
     },
     handleAddProduct(){
@@ -545,6 +546,7 @@ export default {
         this.form.products=this.products;
         if (valid) {
           console.log(this.form);
+          this.form.customerId = this.customerId;
           createUserOrder(this.form).then(response => {
             if (response.code === 200) {
               this.msgSuccess("创建成功");

+ 904 - 0
src/views/store/components/productOrder2.vue

@@ -0,0 +1,904 @@
+<template>
+  <div class="order-content">
+      <div class="order-status" v-if="order!=null" >
+          <el-steps  :active="order.status==3?order.status+1:order.status" align-center>
+            <el-step title="待支付"></el-step>
+            <el-step title="待发货"></el-step>
+            <el-step title="待收货"></el-step>
+            <el-step title="交易完成"></el-step>
+          </el-steps>
+      </div>
+      <div>
+
+      <el-card shadow="never" style="margin-top: 15px">
+      <div class="operate-container"  v-if="order!=null">
+        <span  style="margin-left: 20px" class="color-danger">订单状态:
+           <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="order.status==item.dictValue">{{item.dictLabel}}</el-tag>
+        </span>
+
+        <div class="operate-button-container" >
+          <el-button size="mini" @click="handleCertificates()"  v-hasPermi="['store:storeOrder:uploadCredentials']" >上传凭证</el-button>
+          <el-button size="mini" @click="handleEditAddress()" v-if="order.status==0||order.status==1"  v-hasPermi="['store:storeOrder:editAddress']" >修改收货地址</el-button>
+          <el-button size="mini" @click="handleBindCustomer()"  v-hasPermi="['store:storeOrder:bindCustomer']" >关联客户</el-button>
+          <el-button size="mini" @click="editOrder()"  v-hasPermi="['store:storeOrder:edit']" >修改订单</el-button>
+          <!-- <el-button size="mini" @click="handleEditUser()"  v-hasPermi="['users:user:edit']" >修改会员修改</el-button> -->
+          <el-button size="mini" v-if="order.customerId!=null&&order.customerId>0"  @click="handleCustomer()"    >查看客户详情</el-button>
+        </div>
+        <div class="operate-button-container"  v-hasPermi="['store:storeOrder:express']"  >
+          <el-button size="mini" @click="showExpress()" >查看物流</el-button>
+        </div>
+      </div>
+      <div style="margin: 20px 0px"  v-if="order!=null">
+        <span class="font-small">
+          基本信息
+        </span>
+      </div>
+      <el-descriptions :column="4" border  >
+            <el-descriptions-item label="订单编号"  >
+                <span v-if="order!=null">
+                  {{order.orderCode}}
+                </span>
+                <el-tag  v-for="(item, index) in createTypeOptions"    v-if="order!=null&&order.orderCreateType==item.dictValue">{{item.dictLabel}}
+                </el-tag>
+            </el-descriptions-item>
+            <el-descriptions-item label="会员"  >
+                <span v-if="user!=null">
+                  {{user.nickname}}({{user.phone}})
+                </span>
+            </el-descriptions-item>
+            <!-- <el-descriptions-item label="进线时间"  >
+                <span v-if="user!=null">
+                  {{user.registerDate}}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="推线编码"  >
+                <span v-if="user!=null">
+                  {{user.registerCode}}
+                </span>
+            </el-descriptions-item> -->
+
+            <el-descriptions-item label="收货人"  >
+                <span v-if="order!=null ">
+                  {{order.realName }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="手机号码"  >
+                <span v-if="order!=null ">
+                  {{order.userPhone }}
+                </span>
+                <el-button type="text" size="mini" @click="callNumber(0,0,orderId)"  v-hasPermi="['store:storeOrder:callNumber']">拨号</el-button>
+                <el-button type="text" size="mini" @click="handleSms(order.userPhone)" v-hasPermi="['store:storeOrder:sendSms']">短信</el-button>
+                <el-button icon="el-icon-search" size="mini" @click="handlePhone()" style="margin-left: 20px;" circle v-hasPermi="['store:storeOrder:queryPhone']"></el-button>
+            </el-descriptions-item>
+            <el-descriptions-item label="收货地址"  >
+              <el-popover
+                v-if="order!=null"
+                placement="top-start"
+                title="收货地址"
+                width="300"
+                trigger="hover"
+                :content="order.userAddress">
+                <span slot="reference">{{order.userAddress}}</span>
+                <el-button icon="el-icon-search" size="mini" @click="handleAddress()" style="margin-left: 20px;" circle v-hasPermi="['store:storeOrder:queryAddress']"></el-button>
+              </el-popover>
+            </el-descriptions-item>
+            <el-descriptions-item label="支付方式"  >
+                <span v-if="order!=null ">
+                  <el-tag prop="orderType" v-for="(item, index) in payTypeOptions"    v-if="order.payType==item.dictValue">{{item.dictLabel}}</el-tag>
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="订单类型"  >
+                <span v-if="order!=null ">
+                  <el-tag prop="orderType" v-for="(item, index) in orderTypeOptions"    v-if="order.orderType==item.dictValue">{{item.dictLabel}}</el-tag>
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="物流公司编号"  >
+                <span v-if="order!=null ">
+                  {{order.deliverySn }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="物流公司名称"  >
+                <span v-if="order!=null ">
+                  {{order.deliveryName }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="快递单号"  >
+                <span v-if="order!=null ">
+                  {{order.deliveryId }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="档期归属"  >
+              <el-tag prop="scheduleId" v-for="(item, index) in scheduleOptions"    v-if="order!=null&&order.scheduleId==item.id">{{item.name}}
+              </el-tag>
+            </el-descriptions-item>
+            <el-descriptions-item label="用户备注"  >
+                <span v-if="order!=null ">
+                  {{order.mark }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="平台备注"  >
+                <span v-if="order!=null ">
+                  {{order.remark }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="跟随阶段"  v-if="company.companyId == 174">
+              <span v-if="order!=null ">
+                <el-tag prop="orderVisit" v-for="(item, index) in customerUserStatusOptions"    v-if="order.orderVisit==item.dictValue">{{item.dictLabel}}</el-tag>
+              </span>
+            </el-descriptions-item>
+            <el-descriptions-item v-if="customerInfo!=null " label="客户编码"  >
+                <span >
+                  {{customerInfo.customerCode }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item v-if="customerInfo!=null " label="进线时间"  >
+                <span >
+                  {{customerInfo.registerDate }}
+                </span>
+            </el-descriptions-item>
+
+      </el-descriptions>
+      <div style="margin: 20px 0px"  v-if="order!=null">
+        <span class="font-small">
+          凭证信息
+        </span>
+      </div>
+      <el-image
+          v-if="this.certificates != null"
+          :src="certificates"
+          :preview-src-list="[certificates]"
+          :style="{ width: '100px', height: '100px' }"
+          @click.native="showImageDialog"
+        ></el-image>
+        <el-dialog :visible.sync="dialogVisibleImage" width="10%">
+          <img :src="certificates" style="width: 100%" alt="">
+        </el-dialog>
+
+      <div style="margin-top: 20px">
+        <span class="font-small">商品信息</span>
+      </div>
+      <el-table
+        border
+        v-if="items!=null"
+        :data="items"
+        size="small"
+        style="width: 100%;margin-top: 20px" >
+        <el-table-column label="商品图片" width="150" align="center">
+          <template slot-scope="scope">
+            <img :src="JSON.parse(scope.row.jsonInfo).image" style="height: 80px">
+          </template>
+        </el-table-column>
+        <el-table-column label="商品名称" width="300" align="center">
+          <template slot-scope="scope">
+            <p>{{JSON.parse(scope.row.jsonInfo).productName}}</p>
+          </template>
+        </el-table-column>
+        <el-table-column label="单价" width="240" align="center">
+          <template slot-scope="scope">
+            <p>¥{{JSON.parse(scope.row.jsonInfo).price.toFixed(2)}}</p>
+          </template>
+        </el-table-column>
+        <el-table-column label="规格" width="240" align="center">
+          <template slot-scope="scope">
+            {{JSON.parse(scope.row.jsonInfo).sku}}
+          </template>
+        </el-table-column>
+        <el-table-column label="数量" width="180" align="center">
+          <template slot-scope="scope">
+            {{scope.row.num}}
+          </template>
+        </el-table-column>
+        <el-table-column label="小计"  align="center">
+          <template slot-scope="scope" >
+            ¥{{scope.row.num*JSON.parse(scope.row.jsonInfo).price.toFixed(2)}}
+          </template>
+        </el-table-column>
+      </el-table>
+      <div style="float: right;margin: 20px" v-if="order!=null">
+        合计:<span class="color-danger">¥{{order.totalPrice.toFixed(2)}}</span>
+      </div>
+
+      <div style="margin: 60px 0px 20px 0px">
+        <span class="font-small">费用信息</span>
+      </div>
+      <el-descriptions   :column="4" border  >
+          <el-descriptions-item label="商品合计"  >
+              <span v-if="order!=null">
+                ¥{{order.totalPrice.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="应付金额"  >
+              <span v-if="order!=null">
+                ¥{{order.payPrice.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="运费"  >
+              <span v-if="order!=null">
+                ¥{{order.payPostage.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="优惠券"  >
+              <span v-if="order!=null">
+                ¥{{order.couponPrice.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="积分抵扣"  >
+              <span v-if="order!=null">
+                ¥{{order.deductionPrice.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="实付金额"  >
+              <span v-if="order!=null">
+                ¥{{order.payMoney.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="代收金额"  >
+              <span v-if="order!=null">
+                ¥{{order.payDelivery.toFixed(2)}}
+              </span>
+          </el-descriptions-item>
+      </el-descriptions>
+
+      <div style="margin-top: 20px">
+        <svg-icon icon-class="marker" style="color: #606266"></svg-icon>
+        <span class="font-small">支付信息</span>
+      </div>
+      <el-table
+        border
+        :data="payments"
+        size="small"
+        style="width: 100%;margin-top: 20px" >
+          <el-table-column label="支付单号" align="center" prop="payCode" width="120px" />
+          <el-table-column label="支付金额" align="center" prop="payMoney" />
+          <el-table-column label="类型" align="center" prop="payTypeCode" />
+          <el-table-column label="交易单号" align="center" prop="bankTransactionId" />
+          <el-table-column label="银行单号" align="center" prop="bankSerialNo" />
+          <el-table-column label="创建时间" align="center" prop="createTime" />
+          <el-table-column label="支付时间" align="center" prop="payTime" />
+      </el-table>
+
+      <div style="margin-top: 20px">
+        <span class="font-small">操作信息</span>
+      </div>
+      <el-table style="margin-top: 20px;width: 100%"
+                ref="orderHistoryTable"
+                :data="logs" border>
+        <el-table-column label="操作时间"  width="160" align="center">
+          <template slot-scope="scope">
+            {{scope.row.changeTime}}
+          </template>
+        </el-table-column>
+        <el-table-column label="备注" align="center">
+          <template slot-scope="scope">
+            {{scope.row.changeMessage}}
+          </template>
+        </el-table-column>
+      </el-table>
+      </el-card>
+    </div>
+    <el-dialog :title="edit.title" :visible.sync="edit.open" width="600px" append-to-body>
+      <el-form ref="editForm" :model="editForm" :rules="editRules" label-width="100px">
+        <el-form-item label="订单类型" prop="orderType"  >
+            <el-select style="width: 200px" v-model="editForm.orderType" placeholder="请选择订单类型" clearable size="small" >
+              <el-option
+                      v-for="item in orderTypeOptions"
+                      :key="item.dictValue"
+                      :label="item.dictLabel"
+                      :value="item.dictValue"
+                    />
+            </el-select>
+        </el-form-item>
+        <el-form-item label="档期归属" prop="scheduleId"  >
+            <el-select filterable style="width: 200px" v-model="editForm.scheduleId" placeholder="请选择档期" clearable size="small" >
+              <el-option
+                      v-for="item in scheduleOptions"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    />
+            </el-select>
+        </el-form-item>
+        <el-form-item label="跟随阶段" prop="orderVisit" v-if="company.companyId == 174" >
+          <el-select filterable style="width: 200px" v-model="editForm.orderVisit" placeholder="请选择跟随阶段" clearable size="small" >
+            <el-option
+                v-for="item in customerUserStatusOptions"
+                :key="item.dictValue"
+                :label="item.dictLabel"
+                :value="item.dictValue"
+              />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="备注" prop="mark"  >
+          <el-input v-model="editForm.mark" placeholder="请输入备注" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitEditForm">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog :title="editUser.title" :visible.sync="editUser.open" width="600px" append-to-body>
+      <el-form ref="editUserForm" :model="editUserForm" :rules="editUserRules" label-width="100px">
+         <el-form-item label="进线时间" prop="registerDate">
+          <el-date-picker clearable size="small"
+            v-model="editUserForm.registerDate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择进线时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="推线编码" prop="registerCode">
+          <el-input v-model="editUserForm.registerCode" placeholder="请输入推线编码" />
+        </el-form-item>
+          <el-form-item label="渠道来源" prop="source">
+          <el-input v-model="editUserForm.source" placeholder="请输入渠道来源" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitEditUserForm">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog :title="editAddress.title" :visible.sync="editAddress.open" width="600px" append-to-body>
+      <el-form ref="editAddressForm" :model="editAddressForm" :rules="editAddressRules" label-width="100px">
+        <el-form-item label="收件人" prop="realName">
+          <el-input v-model="editAddressForm.realName" placeholder="请输入收件人" />
+        </el-form-item>
+          <el-form-item label="联系电话" prop="source">
+          <el-input v-model="editAddressForm.userPhone" placeholder="请输入联系电话" />
+        </el-form-item>
+        <el-form-item label="收货地址" prop="district">
+          <el-row :gutter="20">
+          <el-col :span="6">
+             <el-select @change="provinceChange" v-model="editAddressForm.provinceId" placeholder="请选择">
+                <el-option
+                  v-for="item in province"
+                  :key="item.cityId"
+                  :label="item.name"
+                  :value="item.cityId">
+                </el-option>
+              </el-select>
+          </el-col>
+          <el-col :span="6">
+            <el-select @change="cityChange" v-model="editAddressForm.cityId" placeholder="请选择">
+                <el-option
+                  v-for="item in city"
+                  :key="item.cityId"
+                  :label="item.name"
+                  :value="item.cityId">
+                </el-option>
+              </el-select>
+          </el-col>
+          <el-col :span="6">
+             <el-select @change="districtChange" v-model="editAddressForm.districtId" placeholder="请选择">
+                <el-option
+                  v-for="item in district"
+                  :key="item.cityId"
+                  :label="item.name"
+                  :value="item.cityId">
+                </el-option>
+              </el-select>
+          </el-col>
+        </el-row>
+        </el-form-item>
+        <el-form-item label="详细地址" prop="detail">
+          <el-input v-model="editAddressForm.detail" placeholder="请输入收货人详细地址" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitEditAddressForm">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog :title="expressDialog.title" :visible.sync="expressDialog.open" width="600px" append-to-body>
+      <el-table style="margin-top: 20px;width: 100%"
+                ref="orderHistoryTable"
+                :data="traces" border>
+        <el-table-column label="操作时间"  width="160" align="center">
+          <template slot-scope="scope">
+            {{scope.row.AcceptTime}}
+          </template>
+        </el-table-column>
+         <el-table-column label="位置" align="center">
+          <template slot-scope="scope">
+            {{scope.row.Location}}
+          </template>
+        </el-table-column>
+        <el-table-column label="描述" align="center">
+          <template slot-scope="scope">
+            {{scope.row.AcceptStation}}
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+    <el-dialog :title="bindCustomerDialog.title" :visible.sync="bindCustomerDialog.open" width="800px" append-to-body>
+      <el-form ref="bindCustomerForm" :model="bindCustomerForm" :rules="bindCustomerRules" label-width="100px">
+        <el-form-item label="客户查询">
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <el-input v-model="bindCustomerForm.mobile"   placeholder="请输入客户手机号"/>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button type="primary" @click="searchCustomer">查看</el-button>
+            </el-col>
+          </el-row>
+
+        </el-form-item>
+        <el-form-item label="客户选择"  prop="customerIds">
+          <el-table   @selection-change="handleSelectionChange"
+                :data="customers" border>
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="ID" align="center" prop="customerId" />
+            <el-table-column label="客户编号"  width="160" align="center">
+              <template slot-scope="scope">
+                {{scope.row.customerCode}}
+              </template>
+            </el-table-column>
+            <el-table-column label="客户名称"  width="160" align="center">
+              <template slot-scope="scope">
+                {{scope.row.customerName}}
+              </template>
+            </el-table-column>
+            <el-table-column label="客户手机号"  width="160" align="center">
+              <template slot-scope="scope">
+                {{scope.row.mobile}}
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitBindCustomerForm">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog :title="certificateDialig.title" :visible.sync="certificateDialig.open" append-to-body>
+      <el-form ref="certificateForm" :model="certificateForm" :rules="certificateRules" label-width="100px">
+        <el-form-item label="凭证" prop="certificates">
+          <ImageUpload v-model="photoArr" type="image" :num="10" :width="150" :height="150" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="handleConfirm">确 定</el-button>
+      </div>
+    </el-dialog>
+    <el-drawer
+      :append-to-body="true"
+      size="75%"
+      :title="customer.title" :visible.sync="customer.open"
+      >
+        <customer-details  ref="customerDetails" />
+    </el-drawer>
+    <el-dialog :title="addSms.title" :visible.sync="addSms.open" width="800px" append-to-body>
+        <add-sms ref="sms" @close="closeSms()"></add-sms>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {updateUser,getUser } from "@/api/users/user";
+import { getTcmScheduleList } from "@/api/company/tcmScheduleReport";
+import {getCustomerListBySearch } from "@/api/crm/customer";
+import ImageUpload from '@/components/ImageUpload'
+import Material from '@/components/Material'
+import {bindCustomer,getExpress, listStoreOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder,uploadCredentials, getStoreOrderAddress,getUserPhone} from "@/api/store/storeOrder";
+import {getAllList} from "@/api/store/city";
+import customerDetails from '../../crm/components/customerDetails.vue';
+import addSms from '../../crm/components/addSms.vue';
+export default {
+  name: "order",
+  components: {customerDetails,
+    ImageUpload,Material ,addSms},
+  data() {
+    return {
+      customerUserStatusOptions:[],
+      scheduleOptions:[],
+      dialogVisibleImage: false,
+      customerInfo:null,
+      customer:{
+        title:"客户详情",
+        open:false,
+      },
+      photoArr:null,
+      certificateDialig:{
+        title:"上传凭证",
+        open:false,
+      },
+      certificateForm:{
+        orderCode:null,
+        certificates:null,
+      },
+      addSms:{
+        open:false,
+        title:"发短信"
+      },
+      certificateRules:{
+        certificates:[
+          { required: true, message: "凭证不能为空", trigger: "change" }
+        ]
+      },
+      customers:[],
+      bindCustomerDialog:{
+        title:"关联客户",
+        open:false,
+      },
+      bindCustomerForm:{
+        mobile:null,
+        customerIds:null,
+      },
+      bindCustomerRules:{
+        customerIds: [
+            { required: true, message: "客户不能为空", trigger: "change" }
+        ],
+
+      },
+      orderId:null,
+      expressDialog:{
+        title:"物流信息",
+        open:false,
+      },
+      citys:[],
+      province:[],
+      city:[],
+      district:[],
+      editAddress:{
+        title:"修改收货地址",
+        open:false,
+      },
+      editAddressForm:{
+        districtId:null,
+
+      },
+      editAddressRules:{
+
+      },
+      editUser:{
+        title:"修改会员信息",
+        open:false,
+      },
+      editUserForm:{
+        registerDate:null,
+        registerCode:"",
+        source:"",
+      },
+      editUserRules:{
+
+      },
+      edit:{
+        title:"",
+        open:false,
+      },
+      editForm:{
+        orderType:null,
+        scheduleId:null,
+        orderVisit:null,
+        mark:"",
+      },
+      editRules:{
+
+      },
+      createTypeOptions:[],
+      orderTypeOptions:[],
+      payTypeOptions:[],
+      statusOptions:[],
+      certificates:null,
+      order:null,
+      user:{},
+      logs:[],
+      items:[],
+      express:[],
+      traces:[],
+      payments:[],
+    };
+  },
+  created() {
+    this.getDicts("crm_customer_user_status").then((response) => {
+            this.customerUserStatusOptions = response.data;
+        });
+    this.getDicts("store_order_type").then((response) => {
+      this.orderTypeOptions = response.data;
+    });
+    this.getDicts("store_order_status").then((response) => {
+      this.statusOptions = response.data;
+    });
+    this.getDicts("store_pay_type").then((response) => {
+      this.payTypeOptions = response.data;
+    });
+    this.getDicts("store_order_create_type").then((response) => {
+      this.createTypeOptions = response.data;
+    });
+    getTcmScheduleList().then(response => {
+      this.scheduleOptions = response.data;
+    });
+  },
+  computed: {
+    company(){
+      return this.$store.state.user.user;
+    }
+  },
+  methods: {
+    closeSms(){
+      this.addSms.open=false;
+    },
+    handleSms(mobile){
+        this.addSms.open=true;
+        var that=this;
+        setTimeout(() => {
+            that.$refs.sms.getOrderId(this.orderId,mobile,2);
+        }, 500);
+        
+    },
+    handlePhone(){
+      const id = this.order.id;
+        getUserPhone(id).then(response =>{
+          this.order.userPhone = response.userPhone;
+        })
+      },
+    handleAddress(){
+      const id = this.order.id;
+      getStoreOrderAddress(id).then(response =>{
+          this.order.userAddress = response.address;
+      }) 
+    },
+    showImageDialog() {
+      this.dialogVisible = true;
+    },
+    handleCustomer(){
+      var that=this;
+      this.customer.open = true;
+      setTimeout(() => {
+          that.$refs.customerDetails.getDetails(this.order.customerId);
+      }, 200);
+    },
+    handleSelectionChange(selection) {
+      this.bindCustomerForm.customerIds = selection.map(item => item.customerId)
+    },
+    searchCustomer(){
+      if(this.bindCustomerForm.mobile==null||this.bindCustomerForm.mobile==""){
+        this.msgError("请输入手机号");
+        return;
+      }
+      var data={mobile:this.bindCustomerForm.mobile};
+      getCustomerListBySearch(data).then(response => {
+          this.customers=response.data;
+      });
+    },
+    handleBindCustomer() {
+      this.customers=[];
+      this.bindCustomerDialog.open = true;
+      this.bindCustomerForm.mobile=null;
+      this.bindCustomerForm.orderId=this.orderId;
+      this.bindCustomerForm.customerIds=null;
+    },
+    /** 提交按钮 */
+    submitBindCustomerForm() {
+      this.$refs["bindCustomerForm"].validate(valid => {
+        if (valid) {
+          bindCustomer(this.bindCustomerForm).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.bindCustomerDialog.open = false;
+              }
+            });
+        }
+      });
+    },
+    handleCertificates(){
+      this.certificateDialig.open = true;
+      this.photoArr = null;
+    },
+    handleConfirm(){
+      this.certificateForm.id = this.orderId;
+      this.certificateForm.orderCode = this.order.orderCode;
+      this.certificateForm.certificates = this.photoArr;
+      uploadCredentials(this.certificateForm).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("上传成功");
+                this.certificateDialig.open = false;
+                this.getOrder(this.order.id);
+              }
+            });
+    },
+    showExpress(){
+      this.expressDialog.open=true;
+      getExpress(this.orderId).then(response => {
+          this.express = response.data;
+          if(this.express!=null&&this.express.Traces!=null){
+              this.traces=this.express.Traces
+          }
+
+      });
+
+    },
+    districtChange(val){
+      var item=this.citys.find((item)=>{
+        return item.cityId==val&&item.level==2;
+      })
+      this.editAddressForm.district=item.name;
+
+    },
+    cityChange(val){
+      this.district=this.citys.filter(item => item.parentId===val )
+      this.editAddressForm.districtId=null;
+      var item=this.citys.find((item)=>{
+        return item.cityId==val&&item.level==1;
+      })
+      console.log(item)
+      this.editAddressForm.city=item.name;
+
+
+    },
+    provinceChange(val){
+      this.city=this.citys.filter(item => item.parentId===val )
+      this.district=[];
+      this.editAddressForm.cityId=null;
+      this.editAddressForm.districtId=null;
+      var item=this.citys.find((item)=>{
+        return item.cityId==val&&item.level==0;
+      })
+      this.editAddressForm.province=item.name;
+    },
+    getCityList(){
+        getAllList().then(res => {
+          this.citys=res.data;
+          this.province=res.data.filter(item => item.level===0 )
+        })
+    },
+    handleEditAddress() {
+        this.getCityList();
+        this.editAddressForm.id=this.order.id;
+        this.editAddressForm.realName=this.order.realName;
+        this.editAddressForm.userPhone=this.order.userPhone;
+        var address=this.order.userAddress.split(' ')
+        var province=this.citys.find((item)=>{
+          return item.name==address[0]&&item.level==0;
+        })
+        if(province!=null){
+          this.editAddressForm.provinceId=province.cityId;
+          this.city=this.citys.filter(item => item.parentId===province.cityId&&item.level==1 )
+        }
+        var city=this.citys.find((item)=>{
+          return item.name==address[1]&&item.level==1;
+        })
+
+        if(city!=null){
+          this.editAddressForm.cityId=city.cityId;
+          this.district=this.citys.filter(item => item.parentId===city.cityId&&item.level==2 )
+        }
+        var district=this.citys.find((item)=>{
+          return item.name==address[2]&&item.level==2;
+        })
+        if(district!=null){
+          this.editAddressForm.districtId=district.cityId;
+        }
+
+        this.editAddress.open = true;
+    },
+    /** 提交按钮 */
+    submitEditAddressForm() {
+      this.$refs["editAddressForm"].validate(valid => {
+        if (valid) {
+           this.editAddressForm.userAddress=this.editAddressForm.province+" "+this.editAddressForm.city+" "+this.editAddressForm.district+" "+this.editAddressForm.detail;
+            updateStoreOrder(this.editAddressForm).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.editAddress.open = false;
+                this.getOrder(this.order.id);
+              }
+            });
+        }
+      });
+    },
+    handleEditUser() {
+      const userId = this.order.userId
+      getUser(userId).then(response => {
+        this.editUserForm.userId=response.data.userId;
+        this.editUserForm.registerDate=response.data.registerDate;
+        this.editUserForm.registerCode=response.data.registerCode;
+        this.editUserForm.source=response.data.source;
+        this.editUser.open = true;
+      });
+    },
+    /** 提交按钮 */
+    submitEditUserForm() {
+      this.$refs["editUserForm"].validate(valid => {
+        if (valid) {
+            updateUser(this.editUserForm).then(response => {
+              if (response.code === 200) {
+                this.msgSuccess("修改成功");
+                this.editUser.open = false;
+                this.getOrder(this.order.id);
+              }
+            });
+        }
+      });
+    },
+    submitEditForm(){
+        this.$refs["editForm"].validate(valid => {
+        if (valid) {
+          updateStoreOrder(this.editForm).then(response => {
+            if (response.code === 200) {
+              this.msgSuccess("操作成功");
+              this.edit.open = false;
+              this.getOrder(this.order.id);
+            }
+          });
+
+        }
+      });
+    },
+    editOrder(){
+        this.edit.open=true;
+        this.editForm.mark=this.order.mark
+        this.editForm.id=this.order.id;
+        if(this.order.orderType!=null){
+          this.editForm.orderType=this.order.orderType.toString();
+        }
+        this.editForm.scheduleId=this.order.scheduleId;
+        this.editForm.orderVisit = this.order.orderVisit;
+
+    },
+    getOrder(orderId){
+        this.orderId=orderId;
+        this.certificates = null;
+        getStoreOrder(orderId).then(response => {
+            this.order = response.order;
+            if(response.order.certificates != null){
+              this.certificates = response.order.certificates;
+            }
+            this.user = response.user;
+            this.logs = response.logs;
+            this.items = response.items;
+            this.payments=response.payments;
+            this.customerInfo=response.customer;
+        });
+     }
+  }
+};
+</script>
+<style scoped>
+.order-content{
+  margin: 10px;
+}
+.detail-container {
+  width: 80%;
+  padding: 20px 20px 20px 20px;
+  margin: 20px auto;
+}
+
+.operate-container {
+  background: #F2F6FC;
+  height: 60px;
+  margin: -20px -20px 0;
+  line-height: 60px;
+}
+
+.operate-button-container {
+  float: right;
+  margin-right: 20px
+}
+
+.table-layout {
+  margin-top: 20px;
+  border-left: 1px solid #DCDFE6;
+  border-top: 1px solid #DCDFE6;
+}
+
+.table-cell {
+  height: 60px;
+  line-height: 40px;
+  border-right: 1px solid #DCDFE6;
+  border-bottom: 1px solid #DCDFE6;
+  padding: 10px;
+  font-size: 14px;
+  color: #606266;
+  text-align: center;
+  overflow: hidden;
+}
+
+.table-cell-title {
+  border-right: 1px solid #DCDFE6;
+  border-bottom: 1px solid #DCDFE6;
+  padding: 10px;
+  background: #F2F6FC;
+  text-align: center;
+  font-size: 14px;
+  color: #303133;
+}
+</style>